Improves night mode

This commit is contained in:
tom79 2017-07-01 15:24:28 +02:00
parent 6c6ae23b15
commit 5519242cd0
15 changed files with 120 additions and 22 deletions

View File

@ -33,4 +33,5 @@ dependencies {
compile 'com.evernote:android-job:1.1.11'
compile 'com.github.chrisbanes:PhotoView:2.0.0'
}

View File

@ -117,6 +117,14 @@ public class MediaActivity extends AppCompatActivity {
finish();
if( getSupportActionBar() != null)
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
RelativeLayout main_container_media = (RelativeLayout) findViewById(R.id.main_container_media);
if( theme == Helper.THEME_LIGHT){
main_container_media.setBackgroundResource(R.color.background_image);
}else {
main_container_media.setBackgroundResource(R.color.colorPrimaryD);
}
loader = (RelativeLayout) findViewById(R.id.loader);
imageView = (PhotoView) findViewById(R.id.media_picture);
videoView = (VideoView) findViewById(R.id.media_video);

View File

@ -80,6 +80,8 @@ import fr.gouv.etalab.mastodon.sqlite.AccountDAO;
import fr.gouv.etalab.mastodon.sqlite.Sqlite;
import mastodon.etalab.gouv.fr.mastodon.R;
import static fr.gouv.etalab.mastodon.helper.Helper.changeDrawableColor;
/**
* Created by Thomas on 01/05/2017.
@ -143,6 +145,25 @@ public class TootActivity extends AppCompatActivity implements OnRetrieveSearcAc
toot_lv_accounts = (ListView) findViewById(R.id.toot_lv_accounts);
toot_sensitive = (CheckBox) findViewById(R.id.toot_sensitive);
if( theme == Helper.THEME_DARK){
changeDrawableColor(TootActivity.this, R.drawable.ic_action_globe,R.color.dark_text);
changeDrawableColor(TootActivity.this, R.drawable.ic_action_lock_open,R.color.dark_text);
changeDrawableColor(TootActivity.this, R.drawable.ic_action_lock_closed,R.color.dark_text);
changeDrawableColor(TootActivity.this, R.drawable.ic_local_post_office,R.color.dark_text);
changeDrawableColor(TootActivity.this, R.drawable.ic_action_globe,R.color.dark_text);
changeDrawableColor(TootActivity.this, R.drawable.ic_action_camera,R.color.dark_text);
}else {
changeDrawableColor(TootActivity.this, R.drawable.ic_action_globe,R.color.black);
changeDrawableColor(TootActivity.this, R.drawable.ic_action_lock_open,R.color.black);
changeDrawableColor(TootActivity.this, R.drawable.ic_action_lock_closed,R.color.black);
changeDrawableColor(TootActivity.this, R.drawable.ic_local_post_office,R.color.black);
changeDrawableColor(TootActivity.this, R.drawable.ic_action_globe,R.color.black);
changeDrawableColor(TootActivity.this, R.drawable.ic_action_camera,R.color.black);
}
final LinearLayout drawer_layout = (LinearLayout) findViewById(R.id.drawer_layout);
/*drawer_layout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {

View File

@ -62,6 +62,7 @@ import fr.gouv.etalab.mastodon.client.Entities.Attachment;
import fr.gouv.etalab.mastodon.client.Entities.Status;
import fr.gouv.etalab.mastodon.interfaces.OnPostActionInterface;
import static fr.gouv.etalab.mastodon.helper.Helper.changeDrawableColor;
/**
@ -185,6 +186,32 @@ public class StatusListAdapter extends BaseAdapter implements OnPostActionInterf
if( type == RetrieveFeedsAsyncTask.Type.USER){
holder.status_action_container.setVisibility(View.GONE);
}
//Manages theme for icon colors
final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
int theme = sharedpreferences.getInt(Helper.SET_THEME, Helper.THEME_LIGHT);
if( theme == Helper.THEME_DARK){
changeDrawableColor(context, R.drawable.ic_reply,R.color.dark_text);
changeDrawableColor(context, R.drawable.ic_action_more,R.color.dark_text);
changeDrawableColor(context, R.drawable.ic_action_globe,R.color.dark_text);
changeDrawableColor(context, R.drawable.ic_action_lock_open,R.color.dark_text);
changeDrawableColor(context, R.drawable.ic_action_lock_closed,R.color.dark_text);
changeDrawableColor(context, R.drawable.ic_local_post_office,R.color.dark_text);
changeDrawableColor(context, R.drawable.ic_retweet_black,R.color.dark_text);
changeDrawableColor(context, R.drawable.ic_fav_black,R.color.dark_text);
changeDrawableColor(context, R.drawable.ic_photo,R.color.dark_text);
}else {
changeDrawableColor(context, R.drawable.ic_reply,R.color.black);
changeDrawableColor(context, R.drawable.ic_action_more,R.color.black);
changeDrawableColor(context, R.drawable.ic_action_globe,R.color.black);
changeDrawableColor(context, R.drawable.ic_action_lock_open,R.color.black);
changeDrawableColor(context, R.drawable.ic_action_lock_closed,R.color.black);
changeDrawableColor(context, R.drawable.ic_local_post_office,R.color.black);
changeDrawableColor(context, R.drawable.ic_retweet_black,R.color.black);
changeDrawableColor(context, R.drawable.ic_fav_black,R.color.black);
changeDrawableColor(context, R.drawable.ic_photo,R.color.black);
}
final float scale = context.getResources().getDisplayMetrics().density;
if( !status.getIn_reply_to_account_id().equals("null") || !status.getIn_reply_to_id().equals("null") ){
Drawable img = ContextCompat.getDrawable(context, R.drawable.ic_reply);
@ -197,7 +224,8 @@ public class StatusListAdapter extends BaseAdapter implements OnPostActionInterf
}else{
holder.status_account_displayname.setCompoundDrawables( null, null, null, null);
}
final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
//Click on a conversation
if( type != RetrieveFeedsAsyncTask.Type.CONTEXT ){
holder.status_content.setOnClickListener(new View.OnClickListener() {
@ -211,7 +239,6 @@ public class StatusListAdapter extends BaseAdapter implements OnPostActionInterf
}
});
}else {
int theme = sharedpreferences.getInt(Helper.SET_THEME, Helper.THEME_LIGHT);
if( theme == Helper.THEME_LIGHT){
if( position == ShowConversationActivity.position){
holder.main_container.setBackgroundResource(R.color.blue_light);

View File

@ -31,7 +31,9 @@ import android.database.sqlite.SQLiteDatabase;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.PorterDuff;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.media.RingtoneManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
@ -44,6 +46,7 @@ import android.support.annotation.ColorInt;
import android.support.design.widget.NavigationView;
import android.support.v4.app.NotificationCompat;
import android.support.v4.app.NotificationManagerCompat;
import android.support.v4.content.ContextCompat;
import android.text.Html;
import android.text.SpannableString;
import android.text.Spanned;
@ -54,6 +57,7 @@ import android.util.DisplayMetrics;
import android.util.Log;
import android.util.TypedValue;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import android.view.WindowManager;
import android.webkit.CookieManager;
@ -691,20 +695,35 @@ public class Helper {
if( currrentUserId == null)
return;
MenuItem menu_account = navigationView.getMenu().findItem(R.id.nav_account_list);
MenuItem nav_main_com = navigationView.getMenu().findItem(R.id.nav_main_com);
MenuItem nav_main_opt= navigationView.getMenu().findItem(R.id.nav_main_opt);
final SharedPreferences sharedpreferences = activity.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
int theme = sharedpreferences.getInt(Helper.SET_THEME, Helper.THEME_LIGHT);
if( theme == Helper.THEME_DARK){
changeDrawableColor(activity, R.drawable.ic_person_add,R.color.dark_text);
changeDrawableColor(activity, R.drawable.ic_person,R.color.dark_text);
changeDrawableColor(activity, R.drawable.ic_cancel,R.color.dark_text);
}else {
changeDrawableColor(activity, R.drawable.ic_person_add,R.color.black);
changeDrawableColor(activity, R.drawable.ic_person,R.color.black);
changeDrawableColor(activity, R.drawable.ic_cancel,R.color.black);
}
if( !menuAccountsOpened ){
arrow.setImageResource(R.drawable.ic_arrow_drop_up);
navigationView.getMenu().clear();
navigationView.inflateMenu(R.menu.menu_accounts);
SQLiteDatabase db = Sqlite.getInstance(activity, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
menu_account.setVisible(true);
nav_main_com.setVisible(false);
nav_main_opt.setVisible(false);
final List<Account> accounts = new AccountDAO(activity, db).getAllAccount();
navigationView.setItemIconTintList(null);
SubMenu navigationViewSub = navigationView.getMenu().findItem(R.id.nav_account_list).getSubMenu();
navigationViewSub.clear();
for(final Account account: accounts) {
if( !currrentUserId.equals(account.getId()) ) {
final MenuItem item = navigationView.getMenu().add("@" + account.getAcct() + "@" + account.getInstance());
final MenuItem item = navigationViewSub.add("@" + account.getAcct() + "@" + account.getInstance());
ImageLoader imageLoader;
DisplayImageOptions options = new DisplayImageOptions.Builder().displayer(new SimpleBitmapDisplayer()).cacheInMemory(false)
.cacheOnDisk(true).resetViewBeforeLoading(true).build();
@ -723,6 +742,7 @@ public class Helper {
@Override
public void onLoadingComplete(String s, View view, Bitmap bitmap) {
item.setIcon(new BitmapDrawable(activity.getResources(), bitmap));
item.getIcon().setColorFilter(0xFFFFFFFF, PorterDuff.Mode.MULTIPLY);
}
@Override
@ -770,7 +790,7 @@ public class Helper {
}
}
MenuItem addItem = navigationView.getMenu().add(R.string.add_account);
MenuItem addItem = navigationViewSub.add(R.string.add_account);
addItem.setIcon(R.drawable.ic_person_add);
addItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
@ -782,13 +802,14 @@ public class Helper {
}
});
}else{
menu_account.setVisible(false);
nav_main_com.setVisible(true);
nav_main_opt.setVisible(true);
arrow.setImageResource(R.drawable.ic_arrow_drop_down);
navigationView.getMenu().clear();
navigationView.inflateMenu(R.menu.activity_main_drawer);
final SharedPreferences sharedpreferences = activity.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
SQLiteDatabase db = Sqlite.getInstance(activity, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
Account account = new AccountDAO(activity, db).getAccountByID(userId);
if( account != null) {
if (account.isLocked()) {
navigationView.getMenu().findItem(R.id.nav_follow_request).setVisible(true);
@ -1059,6 +1080,7 @@ public class Helper {
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptThirdPartyCookies(webView, cookies);
}
webView.setBackgroundColor(Color.TRANSPARENT);
webView.getSettings().setAppCacheEnabled(true);
webView.getSettings().setDatabaseEnabled(true);
webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
@ -1092,5 +1114,15 @@ public class Helper {
return "";
}
/**
* change color of a drawable
* @param drawable int the drawable
* @param hexaColor example 0xffff00
*/
public static Drawable changeDrawableColor(Context context, int drawable, int hexaColor){
int color = Color.parseColor(context.getString(hexaColor));
Drawable mDrawable = ContextCompat.getDrawable(context, drawable);
mDrawable.setColorFilter(color, PorterDuff.Mode.SRC_ATOP);
return mDrawable;
}
}

View File

@ -17,14 +17,11 @@ import android.app.Activity;
import android.graphics.Bitmap;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.TextView;
import fr.gouv.etalab.mastodon.helper.Helper;
import mastodon.etalab.gouv.fr.mastodon.R;
/**

Binary file not shown.

After

Width:  |  Height:  |  Size: 926 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 456 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 600 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@ -19,7 +19,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background_image"
android:id="@+id/main_container_media"
>
<ImageView
android:visibility="gone"
@ -75,7 +75,7 @@
android:textSize="12sp"
android:visibility="gone"
android:layout_marginTop="10dp"
android:textColor="@color/colorAccent"
android:textColor="?attr/colorAccent"
android:layout_below="@+id/pbar_inf"
android:layout_width="50dp"
android:gravity="center"

View File

@ -2,7 +2,16 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item android:title="@string/communication_menu_title">
<item android:id="@+id/nav_account_list"
android:visible="false"
android:title="@string/account_list_menu">
<menu /></item>
</group>
<group android:checkableBehavior="single">
<item
android:title="@string/communication_menu_title"
android:id="@+id/nav_main_com"
>
<menu>
<group android:checkableBehavior="single">
<item
@ -15,7 +24,7 @@
android:title="@string/local_menu" />
<item
android:id="@+id/nav_global"
android:icon="@drawable/ic_action_globe"
android:icon="@drawable/ic_action_globe_menu"
android:title="@string/global_menu" />
<item
android:id="@+id/nav_notification"
@ -28,7 +37,9 @@
</group>
</menu>
</item>
<item android:title="@string/neutral_menu_title">
<item
android:title="@string/neutral_menu_title"
android:id="@+id/nav_main_opt">
<menu>
<group android:checkableBehavior="single">
<item

View File

@ -54,6 +54,7 @@
<string name="communication_menu_title">Communication</string>
<string name="muted_menu">Utilisateurs muets</string>
<string name="blocked_menu">Utilisateurs bloqués</string>
<string name="account_list_menu">Comptes</string>
<string name="notifications">Notifications</string>
<string name="follow_request">Demandes d\'abonnements</string>
<string name="optimization">Optimisation</string>
@ -65,7 +66,7 @@
<string name="send_email">Envoyer un email</string>
<string name="choose_file">Veuillez sélectionner un fichier</string>
<string name="choose_file_error">Aucun explorateur de fichiers trouvé !</string>
<string name="click_to_change">Cliquez sur le chemin pour changer</string>
<string name="click_to_change">Cliquer sur le chemin pour changer</string>
<!-- Status -->
<string name="no_status">Aucun pouet à afficher !</string>
<string name="fav_added">Pouet ajouté aux favoris !</string>