Skip to content

Commit cfea444

Browse files
authored
Merge pull request #448 from neslihanturan/fixIconColor
Change gallery icon color if it is on overlay menu
2 parents 099215e + da35bf7 commit cfea444

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.java

+28
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,16 @@
66
import android.content.Intent;
77
import android.content.SharedPreferences;
88
import android.content.pm.PackageManager;
9+
import android.content.res.Resources;
10+
import android.content.res.TypedArray;
911
import android.os.Build;
1012
import android.os.Bundle;
1113
import android.support.v4.app.Fragment;
1214
import android.support.v4.content.ContextCompat;
15+
import android.util.DisplayMetrics;
1316
import android.util.Log;
17+
import android.util.TypedValue;
18+
import android.view.Display;
1419
import android.view.LayoutInflater;
1520
import android.view.Menu;
1621
import android.view.MenuInflater;
@@ -32,6 +37,7 @@
3237
import fr.free.nrw.commons.nearby.NearbyActivity;
3338

3439
import static android.app.Activity.RESULT_OK;
40+
import static android.content.Context.LOCATION_SERVICE;
3541

3642
public class ContributionsListFragment extends Fragment {
3743

@@ -229,6 +235,28 @@ public void onPrepareOptionsMenu(Menu menu) {
229235
throw new RuntimeException(e);
230236
}
231237
}
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+
}
232260
}
233261
super.onPrepareOptionsMenu(menu);
234262
}

0 commit comments

Comments
 (0)