|
6 | 6 | import android.content.Intent;
|
7 | 7 | import android.content.SharedPreferences;
|
8 | 8 | import android.content.pm.PackageManager;
|
| 9 | +import android.content.res.Resources; |
| 10 | +import android.content.res.TypedArray; |
9 | 11 | import android.os.Build;
|
10 | 12 | import android.os.Bundle;
|
11 | 13 | import android.support.v4.app.Fragment;
|
12 | 14 | import android.support.v4.content.ContextCompat;
|
| 15 | +import android.util.DisplayMetrics; |
13 | 16 | import android.util.Log;
|
| 17 | +import android.util.TypedValue; |
| 18 | +import android.view.Display; |
14 | 19 | import android.view.LayoutInflater;
|
15 | 20 | import android.view.Menu;
|
16 | 21 | import android.view.MenuInflater;
|
|
32 | 37 | import fr.free.nrw.commons.nearby.NearbyActivity;
|
33 | 38 |
|
34 | 39 | import static android.app.Activity.RESULT_OK;
|
| 40 | +import static android.content.Context.LOCATION_SERVICE; |
35 | 41 |
|
36 | 42 | public class ContributionsListFragment extends Fragment {
|
37 | 43 |
|
@@ -229,6 +235,28 @@ public void onPrepareOptionsMenu(Menu menu) {
|
229 | 235 | throw new RuntimeException(e);
|
230 | 236 | }
|
231 | 237 | }
|
| 238 | + |
| 239 | + MenuItem galleryMenu = menu.findItem(R.id.menu_from_gallery); |
| 240 | + |
| 241 | + // Get background resource id to recognize current themes |
| 242 | + TypedArray typedArray = getActivity().getTheme().obtainStyledAttributes(new int[] {R.attr.mainBackground}); |
| 243 | + int galleryIconResourceId = typedArray.getResourceId(0, 0); |
| 244 | + typedArray.recycle(); |
| 245 | + |
| 246 | + // Get width in dp http://stackoverflow.com/questions/11999260/check-if-menuitem-is-in-actionbar-overflow |
| 247 | + DisplayMetrics metrics = new DisplayMetrics(); |
| 248 | + Display display = getActivity().getWindowManager().getDefaultDisplay(); |
| 249 | + display.getMetrics(metrics); |
| 250 | + float logicalDensity = metrics.density; |
| 251 | + int dp = (int) (metrics.widthPixels / logicalDensity + 0.5); |
| 252 | + |
| 253 | + if(dp < 360) { // only two icons, there is no room |
| 254 | + if(galleryIconResourceId==getActivity().obtainStyledAttributes(R.style.LightAppTheme, new int[] {R.attr.mainBackground}).getResourceId(0, 0)){ |
| 255 | + galleryMenu.setIcon(R.drawable.ic_photo_black_24dp); //If theme is light, display dark icon on overlay menu |
| 256 | + }else{ |
| 257 | + galleryMenu.setIcon(R.drawable.ic_photo_white_24dp); //If theme is dark, display light icon on overlay menu |
| 258 | + } |
| 259 | + } |
232 | 260 | }
|
233 | 261 | super.onPrepareOptionsMenu(menu);
|
234 | 262 | }
|
|
0 commit comments