diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 467e4fe88..c3afc39d9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -147,11 +147,6 @@
android:configChanges="keyboardHidden|orientation|screenSize"
android:noHistory="true"
/>
-
. */
package fr.gouv.etalab.mastodon.activities;
+import android.annotation.SuppressLint;
+import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageInfo;
@@ -22,11 +24,16 @@ import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
+import android.support.v7.app.ActionBar;
+import android.support.v7.widget.Toolbar;
import android.text.SpannableString;
import android.text.style.UnderlineSpan;
+import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
+import android.view.ViewGroup;
import android.widget.Button;
+import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
@@ -46,6 +53,8 @@ import fr.gouv.etalab.mastodon.helper.Helper;
import fr.gouv.etalab.mastodon.interfaces.OnRetrieveRelationshipInterface;
import fr.gouv.etalab.mastodon.interfaces.OnRetrieveRemoteAccountInterface;
+import static fr.gouv.etalab.mastodon.helper.Helper.THEME_LIGHT;
+
/**
* Created by Thomas on 05/05/2017.
@@ -85,6 +94,27 @@ public class AboutActivity extends BaseActivity implements OnRetrieveRemoteAccou
if( getSupportActionBar() != null)
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ ActionBar actionBar = getSupportActionBar();
+ if( actionBar != null ) {
+ LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ assert inflater != null;
+ @SuppressLint("InflateParams") View view = inflater.inflate(R.layout.simple_bar, null);
+ actionBar.setCustomView(view, new ActionBar.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
+ actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
+ ImageView toolbar_close = actionBar.getCustomView().findViewById(R.id.toolbar_close);
+ TextView toolbar_title = actionBar.getCustomView().findViewById(R.id.toolbar_title);
+ toolbar_close.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ toolbar_title.setText(R.string.action_about);
+ if (theme == THEME_LIGHT){
+ Toolbar toolbar = actionBar.getCustomView().findViewById(R.id.toolbar);
+ Helper.colorizeToolbar(toolbar, R.color.black, AboutActivity.this);
+ }
+ }
setContentView(R.layout.activity_about);
TextView about_version = findViewById(R.id.about_version);
try {
diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/BaseMainActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/BaseMainActivity.java
index 7b45beb23..aa02c1b48 100644
--- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/BaseMainActivity.java
+++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/BaseMainActivity.java
@@ -25,6 +25,7 @@ import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.database.sqlite.SQLiteDatabase;
+import android.graphics.Color;
import android.graphics.PorterDuff;
import android.net.Uri;
import android.os.AsyncTask;
@@ -252,6 +253,17 @@ public abstract class BaseMainActivity extends BaseActivity
setSupportActionBar(toolbar);
toolbarTitle = toolbar.findViewById(R.id.toolbar_title);
toolbar_search = toolbar.findViewById(R.id.toolbar_search);
+ if( theme == THEME_LIGHT) {
+ ImageView icon = toolbar_search.findViewById(android.support.v7.appcompat.R.id.search_button);
+ ImageView close = toolbar_search.findViewById(android.support.v7.appcompat.R.id.search_close_btn);
+ ImageView search_mag_icon = toolbar_search.findViewById(android.support.v7.appcompat.R.id.search_mag_icon);
+ if( icon != null)
+ icon.setColorFilter(ContextCompat.getColor(getApplicationContext(), R.color.dark_icon));
+ if( close != null)
+ close.setColorFilter(ContextCompat.getColor(getApplicationContext(), R.color.dark_icon));
+ if( search_mag_icon != null)
+ search_mag_icon.setColorFilter(ContextCompat.getColor(getApplicationContext(), R.color.dark_icon));
+ }
tabLayout = findViewById(R.id.tabLayout);
delete_instance = findViewById(R.id.delete_instance);
viewPager = findViewById(R.id.viewpager);
diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/EditProfileActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/EditProfileActivity.java
index 40291b793..57eb47704 100644
--- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/EditProfileActivity.java
+++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/EditProfileActivity.java
@@ -39,6 +39,7 @@ import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AlertDialog;
+import android.support.v7.widget.Toolbar;
import android.text.Editable;
import android.text.Html;
import android.text.TextWatcher;
@@ -81,7 +82,7 @@ import fr.gouv.etalab.mastodon.interfaces.OnUpdateCredentialInterface;
import fr.gouv.etalab.mastodon.sqlite.AccountDAO;
import fr.gouv.etalab.mastodon.sqlite.Sqlite;
-
+import static fr.gouv.etalab.mastodon.helper.Helper.THEME_LIGHT;
/**
@@ -150,6 +151,10 @@ public class EditProfileActivity extends BaseActivity implements OnRetrieveAccou
}
});
}
+ if (theme == THEME_LIGHT){
+ Toolbar toolbar = actionBar.getCustomView().findViewById(R.id.toolbar);
+ Helper.colorizeToolbar(toolbar, R.color.black, EditProfileActivity.this);
+ }
}else{
setTitle(R.string.settings_title_profile);
}
diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/LoginActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/LoginActivity.java
index e686ab9be..b12ac3519 100644
--- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/LoginActivity.java
+++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/LoginActivity.java
@@ -14,6 +14,7 @@
* see . */
package fr.gouv.etalab.mastodon.activities;
+import android.annotation.SuppressLint;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
@@ -24,22 +25,27 @@ import android.os.AsyncTask;
import android.os.Bundle;
import android.support.design.widget.TextInputLayout;
import android.support.v4.content.ContextCompat;
+import android.support.v7.app.ActionBar;
import android.support.v7.app.AlertDialog;
+import android.support.v7.widget.Toolbar;
import android.text.Editable;
import android.text.SpannableString;
import android.text.TextWatcher;
import android.text.method.LinkMovementMethod;
import android.text.style.UnderlineSpan;
import android.text.util.Linkify;
+import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
+import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
+import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
@@ -53,6 +59,8 @@ import fr.gouv.etalab.mastodon.R;
import fr.gouv.etalab.mastodon.asynctasks.UpdateAccountInfoAsyncTask;
import fr.gouv.etalab.mastodon.client.HttpsConnection;
import fr.gouv.etalab.mastodon.helper.Helper;
+
+import static fr.gouv.etalab.mastodon.helper.Helper.THEME_LIGHT;
import static fr.gouv.etalab.mastodon.helper.Helper.changeDrawableColor;
import static fr.gouv.etalab.mastodon.helper.Helper.convertDpToPixel;
@@ -128,7 +136,27 @@ public class LoginActivity extends BaseActivity {
}
setContentView(R.layout.activity_login);
-
+ ActionBar actionBar = getSupportActionBar();
+ if( actionBar != null ) {
+ LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ assert inflater != null;
+ @SuppressLint("InflateParams") View view = inflater.inflate(R.layout.simple_bar, null);
+ actionBar.setCustomView(view, new ActionBar.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
+ actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
+ ImageView toolbar_close = actionBar.getCustomView().findViewById(R.id.toolbar_close);
+ TextView toolbar_title = actionBar.getCustomView().findViewById(R.id.toolbar_title);
+ toolbar_close.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ toolbar_title.setText(R.string.add_account);
+ if (theme == THEME_LIGHT){
+ Toolbar toolbar = actionBar.getCustomView().findViewById(R.id.toolbar);
+ Helper.colorizeToolbar(toolbar, R.color.black, LoginActivity.this);
+ }
+ }
if (theme == Helper.THEME_DARK) {
changeDrawableColor(getApplicationContext(), R.drawable.mastodon_icon, R.color.mastodonC2);
} else {
diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/OwnerStatusActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/OwnerStatusActivity.java
index de513a78c..fa3f7a010 100644
--- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/OwnerStatusActivity.java
+++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/OwnerStatusActivity.java
@@ -75,6 +75,7 @@ import fr.gouv.etalab.mastodon.sqlite.Sqlite;
import fr.gouv.etalab.mastodon.sqlite.StatusCacheDAO;
import static fr.gouv.etalab.mastodon.helper.Helper.THEME_BLACK;
+import static fr.gouv.etalab.mastodon.helper.Helper.THEME_LIGHT;
/**
@@ -142,6 +143,8 @@ public class OwnerStatusActivity extends BaseActivity implements OnRetrieveFeeds
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
ImageView close_toot = actionBar.getCustomView().findViewById(R.id.close_toot);
+ if( theme == THEME_LIGHT)
+ close_toot.setColorFilter(ContextCompat.getColor(getApplicationContext(), R.color.black));
close_toot.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/PartnerShipActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/PartnerShipActivity.java
index 1dce5a10e..af95f5757 100644
--- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/PartnerShipActivity.java
+++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/PartnerShipActivity.java
@@ -14,14 +14,22 @@
* see . */
package fr.gouv.etalab.mastodon.activities;
+import android.annotation.SuppressLint;
+import android.app.Activity;
+import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
+import android.support.v7.app.ActionBar;
+import android.support.v7.widget.Toolbar;
import android.text.method.LinkMovementMethod;
+import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
+import android.view.ViewGroup;
+import android.view.inputmethod.InputMethodManager;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
@@ -42,6 +50,8 @@ import fr.gouv.etalab.mastodon.helper.Helper;
import fr.gouv.etalab.mastodon.interfaces.OnRetrieveRelationshipInterface;
import fr.gouv.etalab.mastodon.interfaces.OnRetrieveRemoteAccountInterface;
+import static fr.gouv.etalab.mastodon.helper.Helper.THEME_LIGHT;
+
/**
* Created by Thomas on 31/08/2018.
@@ -76,8 +86,27 @@ public class PartnerShipActivity extends BaseActivity implements OnRetrieveRemot
if( getSupportActionBar() != null)
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
setContentView(R.layout.activity_partnership);
-
-
+ ActionBar actionBar = getSupportActionBar();
+ if( actionBar != null ) {
+ LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ assert inflater != null;
+ @SuppressLint("InflateParams") View view = inflater.inflate(R.layout.simple_bar, null);
+ actionBar.setCustomView(view, new ActionBar.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
+ actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
+ ImageView toolbar_close = actionBar.getCustomView().findViewById(R.id.toolbar_close);
+ TextView toolbar_title = actionBar.getCustomView().findViewById(R.id.toolbar_title);
+ toolbar_close.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ toolbar_title.setText(R.string.action_partnership);
+ if (theme == THEME_LIGHT){
+ Toolbar toolbar = actionBar.getCustomView().findViewById(R.id.toolbar);
+ Helper.colorizeToolbar(toolbar, R.color.black, PartnerShipActivity.this);
+ }
+ }
TextView about_partnership = findViewById(R.id.about_partnership);
about_partnership.setMovementMethod(LinkMovementMethod.getInstance());
diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/PeertubeActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/PeertubeActivity.java
index 8c6da2d7c..a3117c4e9 100644
--- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/PeertubeActivity.java
+++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/PeertubeActivity.java
@@ -34,6 +34,7 @@ import android.support.v7.app.AlertDialog;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.PopupMenu;
import android.support.v7.widget.RecyclerView;
+import android.support.v7.widget.Toolbar;
import android.text.Html;
import android.view.Menu;
import android.view.MenuItem;
@@ -72,6 +73,7 @@ import fr.gouv.etalab.mastodon.sqlite.PeertubeFavoritesDAO;
import fr.gouv.etalab.mastodon.sqlite.Sqlite;
import static fr.gouv.etalab.mastodon.helper.Helper.EXTERNAL_STORAGE_REQUEST_CODE;
+import static fr.gouv.etalab.mastodon.helper.Helper.THEME_LIGHT;
import static fr.gouv.etalab.mastodon.helper.Helper.manageDownloads;
@@ -133,7 +135,10 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
}
if( getSupportActionBar() != null)
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
-
+ if (theme == THEME_LIGHT && getSupportActionBar() != null){
+ Toolbar toolbar = getSupportActionBar().getCustomView().findViewById(R.id.toolbar);
+ Helper.colorizeToolbar(toolbar, R.color.black, PeertubeActivity.this);
+ }
videoView = findViewById(R.id.media_video);
new RetrievePeertubeSingleAsyncTask(PeertubeActivity.this, peertubeInstance, videoId, PeertubeActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/PrivacyActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/PrivacyActivity.java
index 0b9353e22..5aae8b6b2 100644
--- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/PrivacyActivity.java
+++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/PrivacyActivity.java
@@ -17,11 +17,13 @@ package fr.gouv.etalab.mastodon.activities;
import android.content.SharedPreferences;
import android.os.Bundle;
+import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import fr.gouv.etalab.mastodon.R;
import fr.gouv.etalab.mastodon.helper.Helper;
+import static fr.gouv.etalab.mastodon.helper.Helper.THEME_LIGHT;
/**
@@ -52,6 +54,10 @@ public class PrivacyActivity extends BaseActivity {
if( getSupportActionBar() != null)
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ if (theme == THEME_LIGHT && getSupportActionBar() != null){
+ Toolbar toolbar = getSupportActionBar().getCustomView().findViewById(R.id.toolbar);
+ Helper.colorizeToolbar(toolbar, R.color.black, PrivacyActivity.this);
+ }
setContentView(R.layout.activity_privacy);
setTitle(getString(R.string.action_privacy));
}
diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/RemoteFollowActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/RemoteFollowActivity.java
deleted file mode 100644
index 5f2f6d1a7..000000000
--- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/RemoteFollowActivity.java
+++ /dev/null
@@ -1,356 +0,0 @@
-/* Copyright 2017 Thomas Schneider
- *
- * This file is a part of Mastalab
- *
- * This program is free software; you can redistribute it and/or modify it under the terms of the
- * GNU General Public License as published by the Free Software Foundation; either version 3 of the
- * License, or (at your option) any later version.
- *
- * Mastalab is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
- * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with Mastalab; if not,
- * see . */
-package fr.gouv.etalab.mastodon.activities;
-
-
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.database.sqlite.SQLiteDatabase;
-import android.graphics.Bitmap;
-import android.graphics.drawable.BitmapDrawable;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import android.support.design.widget.FloatingActionButton;
-import android.support.v4.content.ContextCompat;
-import android.support.v7.app.ActionBar;
-import android.text.Editable;
-import android.text.TextWatcher;
-import android.view.LayoutInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.inputmethod.InputMethodManager;
-import android.widget.ArrayAdapter;
-import android.widget.AutoCompleteTextView;
-import android.widget.Button;
-import android.widget.EditText;
-import android.widget.ImageView;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-import android.widget.Toast;
-
-
-import com.bumptech.glide.Glide;
-import com.bumptech.glide.request.target.SimpleTarget;
-import com.bumptech.glide.request.transition.Transition;
-
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import fr.gouv.etalab.mastodon.R;
-import fr.gouv.etalab.mastodon.asynctasks.PostActionAsyncTask;
-import fr.gouv.etalab.mastodon.asynctasks.RetrieveRelationshipAsyncTask;
-import fr.gouv.etalab.mastodon.asynctasks.RetrieveRemoteDataAsyncTask;
-import fr.gouv.etalab.mastodon.client.API;
-import fr.gouv.etalab.mastodon.client.Entities.Account;
-import fr.gouv.etalab.mastodon.client.Entities.Error;
-import fr.gouv.etalab.mastodon.client.Entities.Relationship;
-import fr.gouv.etalab.mastodon.client.Entities.Results;
-import fr.gouv.etalab.mastodon.client.HttpsConnection;
-import fr.gouv.etalab.mastodon.drawers.AccountSearchDevAdapter;
-import fr.gouv.etalab.mastodon.helper.ExpandableHeightListView;
-import fr.gouv.etalab.mastodon.helper.Helper;
-import fr.gouv.etalab.mastodon.interfaces.OnPostActionInterface;
-import fr.gouv.etalab.mastodon.interfaces.OnRetrieveRelationshipInterface;
-import fr.gouv.etalab.mastodon.interfaces.OnRetrieveRemoteAccountInterface;
-import fr.gouv.etalab.mastodon.sqlite.AccountDAO;
-import fr.gouv.etalab.mastodon.sqlite.Sqlite;
-
-
-
-/**
- * Created by Thomas on 22/08/2017.
- * Remote follow activity class
- */
-
-public class RemoteFollowActivity extends BaseActivity implements OnRetrieveRemoteAccountInterface, OnRetrieveRelationshipInterface, OnPostActionInterface {
-
-
- private ImageView pp_actionBar;
- private AutoCompleteTextView rf_instance;
- private EditText rf_username;
- private TextView rf_no_result;
- private Button rf_search;
- private ExpandableHeightListView lv_account;
- private RelativeLayout loader;
- private boolean isLoadingInstance;
- private String instance_name, screen_name;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE);
- int theme = sharedpreferences.getInt(Helper.SET_THEME, Helper.THEME_DARK);
- switch (theme){
- case Helper.THEME_LIGHT:
- setTheme(R.style.AppTheme);
- break;
- case Helper.THEME_DARK:
- setTheme(R.style.AppThemeDark);
- break;
- case Helper.THEME_BLACK:
- setTheme(R.style.AppThemeBlack);
- break;
- default:
- setTheme(R.style.AppThemeDark);
- }
-
- setContentView(R.layout.activity_remote_follow);
-
- rf_instance = findViewById(R.id.rf_instance);
- rf_username = findViewById(R.id.rf_username);
- rf_search = findViewById(R.id.rf_search);
- loader = findViewById(R.id.loader);
- lv_account = findViewById(R.id.lv_account);
- rf_no_result = findViewById(R.id.rf_no_result);
-
- isLoadingInstance = false;
- ActionBar actionBar = getSupportActionBar();
- if( actionBar != null) {
- LayoutInflater inflater = (LayoutInflater) this.getSystemService(android.content.Context.LAYOUT_INFLATER_SERVICE);
- assert inflater != null;
- @SuppressLint("InflateParams") View view = inflater.inflate(R.layout.simple_action_bar, null);
- actionBar.setCustomView(view, new ActionBar.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
- actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
- TextView title = actionBar.getCustomView().findViewById(R.id.toolbar_title);
- pp_actionBar = actionBar.getCustomView().findViewById(R.id.pp_actionBar);
- title.setText(R.string.remote_follow_menu);
- ImageView close_conversation = actionBar.getCustomView().findViewById(R.id.close_conversation);
- if( close_conversation != null){
- close_conversation.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- finish();
- }
- });
- }
- }else{
- setTitle(R.string.remote_follow_menu);
- }
- SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
- String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
- Account account = new AccountDAO(getApplicationContext(),db).getAccountByID(userId);
- String url = account.getAvatar();
- if( url.startsWith("/") ){
- url = Helper.getLiveInstanceWithProtocol(getApplicationContext()) + account.getAvatar();
- }
- Glide.with(getApplicationContext())
- .asBitmap()
- .load(url)
- .into(new SimpleTarget() {
- @Override
- public void onResourceReady(Bitmap resource, Transition super Bitmap> transition) {
- BitmapDrawable ppDrawable = new BitmapDrawable(getResources(), Bitmap.createScaledBitmap(resource, (int) Helper.convertDpToPixel(25, getApplicationContext()), (int) Helper.convertDpToPixel(25, getApplicationContext()), true));
- if( pp_actionBar != null){
- pp_actionBar.setImageDrawable(ppDrawable);
- } else if( getSupportActionBar() != null){
-
- getSupportActionBar().setIcon(ppDrawable);
- getSupportActionBar().setDisplayShowHomeEnabled(true);
- }
- }
- });
-
-
- rf_instance.addTextChangedListener(new TextWatcher() {
- @Override
- public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
- @Override
- public void onTextChanged(CharSequence s, int start, int before, int count) {
-
- }
- @Override
- public void afterTextChanged(Editable s) {
- if( s.length() > 2 && !isLoadingInstance){
- final String action = "/instances/search";
- final HashMap parameters = new HashMap<>();
- parameters.put("q", s.toString().trim());
- parameters.put("count", String.valueOf(5));
- parameters.put("name", String.valueOf(true));
- isLoadingInstance = true;
- new Thread(new Runnable(){
- @Override
- public void run() {
- try {
- final String response = new HttpsConnection(RemoteFollowActivity.this).get("https://instances.social/api/1.0" + action, 30, parameters, Helper.THEKINRAR_SECRET_TOKEN );
- runOnUiThread(new Runnable() {
- public void run() {
- isLoadingInstance = false;
- String[] instances;
- try {
- JSONObject jsonObject = new JSONObject(response);
- JSONArray jsonArray = jsonObject.getJSONArray("instances");
- if( jsonArray != null){
- instances = new String[jsonArray.length()];
- for(int i = 0 ; i < jsonArray.length() ; i++){
- instances[i] = jsonArray.getJSONObject(i).get("name").toString();
- }
- }else {
- instances = new String[]{};
- }
- rf_instance.setAdapter(null);
- ArrayAdapter adapter =
- new ArrayAdapter<>(RemoteFollowActivity.this, android.R.layout.simple_list_item_1, instances);
- rf_instance.setAdapter(adapter);
- if( rf_instance.hasFocus() && !RemoteFollowActivity.this.isFinishing())
- rf_instance.showDropDown();
-
- } catch (JSONException ignored) {isLoadingInstance = false;}
- }
- });
-
- } catch (HttpsConnection.HttpsConnectionException e) {
- isLoadingInstance = false;
- } catch (Exception e) {
- isLoadingInstance = false;
- }
- }
- }).start();
- }
- }
- });
-
- rf_search.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
-
- if( rf_instance.getText().toString().trim().equals("") || rf_username.getText().toString().trim().equals("")){
- Toast.makeText(getApplicationContext(),R.string.toast_empty_search,Toast.LENGTH_LONG).show();
- return;
- }
- rf_search.setEnabled(false);
- screen_name = rf_username.getText().toString().trim();
- instance_name = rf_instance.getText().toString().trim();
- lv_account.setVisibility(View.GONE);
- loader.setVisibility(View.VISIBLE);
- rf_no_result.setVisibility(View.GONE);
- if( screen_name.startsWith("@"))
- screen_name = screen_name.substring(1);
- new RetrieveRemoteDataAsyncTask(getApplicationContext(), screen_name, instance_name, RemoteFollowActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
- assert imm != null;
- imm.hideSoftInputFromWindow(rf_search.getWindowToken(), 0);
- }
- });
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case android.R.id.home:
- finish();
- return true;
- default:
- return super.onOptionsItemSelected(item);
- }
- }
-
-
- @Override
- public void onRetrieveRemoteAccount(Results results) {
- loader.setVisibility(View.GONE);
- rf_search.setEnabled(true);
- SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE);
- if( results == null){
- Toast.makeText(getApplicationContext(), R.string.toast_error,Toast.LENGTH_LONG).show();
- return;
- }
- List accounts = results.getAccounts();
- Account account;
- List selectedAccount = new ArrayList<>();
- if( accounts != null && accounts.size() > 0){
- account = accounts.get(0);
- selectedAccount.add(account);
- AccountSearchDevAdapter accountSearchWebAdapter = new AccountSearchDevAdapter(RemoteFollowActivity.this, selectedAccount);
- lv_account.setAdapter(accountSearchWebAdapter);
- lv_account.setVisibility(View.VISIBLE);
- new RetrieveRelationshipAsyncTask(getApplicationContext(), account.getId(),RemoteFollowActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- }
- }
-
- @Override
- public void onRetrieveRelationship(Relationship relationship, Error error) {
- final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
- if( error != null){
- Toast.makeText(getApplicationContext(), error.getError(),Toast.LENGTH_LONG).show();
-
- return;
- }
- if( relationship == null)
- return;
- final FloatingActionButton account_follow = findViewById(R.id.account_follow);
- ShowAccountActivity.action doAction = null;
- String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
- final String accountId = relationship.getId();
- if( accountId != null && accountId.equals(userId)){
- account_follow.hide();
- }else if( relationship.isBlocking()){
- account_follow.setImageResource(R.drawable.ic_lock_open);
- doAction = ShowAccountActivity.action.UNBLOCK;
- account_follow.show();
- }else if( relationship.isRequested()){
- account_follow.hide();
- doAction = ShowAccountActivity.action.NOTHING;
- }else if( relationship.isFollowing()){
- account_follow.setImageResource(R.drawable.ic_user_times);
- doAction = ShowAccountActivity.action.UNFOLLOW;
- account_follow.show();
- }else if( !relationship.isFollowing()){
- account_follow.setImageResource(R.drawable.ic_user_plus);
- doAction = ShowAccountActivity.action.FOLLOW;
- account_follow.show();
- }else{
- account_follow.hide();
- doAction = ShowAccountActivity.action.NOTHING;
- }
- final ShowAccountActivity.action finalDoAction = doAction;
- account_follow.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if( finalDoAction == ShowAccountActivity.action.NOTHING){
- Toast.makeText(getApplicationContext(), R.string.nothing_to_do, Toast.LENGTH_LONG).show();
- }else if( finalDoAction == ShowAccountActivity.action.FOLLOW){
- account_follow.setEnabled(false);
- new PostActionAsyncTask(getApplicationContext(), API.StatusAction.FOLLOW, accountId, RemoteFollowActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- }else if( finalDoAction == ShowAccountActivity.action.UNFOLLOW){
- account_follow.setEnabled(false);
- new PostActionAsyncTask(getApplicationContext(), API.StatusAction.UNFOLLOW, accountId, RemoteFollowActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- }else if( finalDoAction == ShowAccountActivity.action.UNBLOCK){
- account_follow.setEnabled(false);
- new PostActionAsyncTask(getApplicationContext(), API.StatusAction.UNBLOCK, accountId, RemoteFollowActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- }
- }
- });
- }
-
- @Override
- public void onPostAction(int statusCode, API.StatusAction statusAction, String userId, Error error) {
- if( error != null){
- final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
- Toast.makeText(getApplicationContext(), error.getError(),Toast.LENGTH_LONG).show();
-
- return;
- }
- Helper.manageMessageStatusCode(getApplicationContext(), statusCode, statusAction);
- new RetrieveRelationshipAsyncTask(getApplicationContext(), userId,RemoteFollowActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- }
-}
diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/SearchResultActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/SearchResultActivity.java
index 76bcb6cdc..a9926fd39 100644
--- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/SearchResultActivity.java
+++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/SearchResultActivity.java
@@ -18,6 +18,7 @@ import android.content.Context;
import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.os.Bundle;
+import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.view.View;
import android.widget.ListView;
@@ -39,6 +40,8 @@ import fr.gouv.etalab.mastodon.helper.Helper;
import fr.gouv.etalab.mastodon.interfaces.OnRetrieveSearchInterface;
import fr.gouv.etalab.mastodon.interfaces.OnRetrieveSearchStatusInterface;
+import static fr.gouv.etalab.mastodon.helper.Helper.THEME_LIGHT;
+
/**
* Created by Thomas on 26/05/2017.
@@ -88,7 +91,10 @@ public class SearchResultActivity extends BaseActivity implements OnRetrieveSear
}
if( getSupportActionBar() != null)
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
-
+ if (theme == THEME_LIGHT && getSupportActionBar() != null){
+ Toolbar toolbar = getSupportActionBar().getCustomView().findViewById(R.id.toolbar);
+ Helper.colorizeToolbar(toolbar, R.color.black, SearchResultActivity.this);
+ }
setTitle(search);
loader.setVisibility(View.VISIBLE);
lv_search.setVisibility(View.GONE);
diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/ShowAccountActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/ShowAccountActivity.java
index b74c1a387..51703137a 100644
--- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/ShowAccountActivity.java
+++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/ShowAccountActivity.java
@@ -41,6 +41,7 @@ import android.support.v7.app.AlertDialog;
import android.support.v7.widget.PopupMenu;
import android.text.Spannable;
import android.text.SpannableString;
+import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.text.style.ForegroundColorSpan;
import android.text.style.UnderlineSpan;
@@ -99,6 +100,7 @@ import static fr.gouv.etalab.mastodon.helper.Helper.INTENT_ACTION;
import static fr.gouv.etalab.mastodon.helper.Helper.SEARCH_INSTANCE;
import static fr.gouv.etalab.mastodon.helper.Helper.THEME_BLACK;
import static fr.gouv.etalab.mastodon.helper.Helper.THEME_DARK;
+import static fr.gouv.etalab.mastodon.helper.Helper.THEME_LIGHT;
import static fr.gouv.etalab.mastodon.helper.Helper.changeDrawableColor;
import static fr.gouv.etalab.mastodon.helper.Helper.withSuffix;
@@ -220,6 +222,8 @@ public class ShowAccountActivity extends BaseActivity implements OnPostActionInt
final ImageButton account_menu = findViewById(R.id.account_menu);
ImageButton action_more = findViewById(R.id.action_more);
+ if( theme == THEME_LIGHT)
+ changeDrawableColor(getApplicationContext(),action_more,R.color.dark_icon);
account_menu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -232,6 +236,8 @@ public class ShowAccountActivity extends BaseActivity implements OnPostActionInt
showMenu(account_menu);
}
});
+
+
}
private void showMenu(View account_menu){
@@ -240,7 +246,7 @@ public class ShowAccountActivity extends BaseActivity implements OnPostActionInt
final PopupMenu popup = new PopupMenu(ShowAccountActivity.this, account_menu);
popup.getMenuInflater()
.inflate(R.menu.main_showaccount, popup.getMenu());
-
+
final String[] stringArrayConf;
final boolean isOwner = account.getId().equals(userId);
String[] splitAcct = account.getAcct().split("@");
@@ -505,6 +511,15 @@ public class ShowAccountActivity extends BaseActivity implements OnPostActionInt
final TextView warning_message = findViewById(R.id.warning_message);
final SpannableString content = new SpannableString(getString(R.string.disclaimer_full));
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
+ if( theme == THEME_DARK)
+ content.setSpan(new ForegroundColorSpan(ContextCompat.getColor(ShowAccountActivity.this, R.color.dark_link_toot)), 0, content.length(),
+ Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
+ else if( theme == THEME_BLACK)
+ content.setSpan(new ForegroundColorSpan(ContextCompat.getColor(ShowAccountActivity.this, R.color.black_link_toot)), 0, content.length(),
+ Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
+ else if( theme == THEME_LIGHT)
+ content.setSpan(new ForegroundColorSpan(ContextCompat.getColor(ShowAccountActivity.this, R.color.mastodonC4)), 0, content.length(),
+ Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
warning_message.setText(content);
warning_message.setOnClickListener(new View.OnClickListener() {
@Override
@@ -911,6 +926,7 @@ public class ShowAccountActivity extends BaseActivity implements OnPostActionInt
return false;
}
});
+
}
diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/ShowConversationActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/ShowConversationActivity.java
index 6d8a35cfe..7387d041a 100644
--- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/ShowConversationActivity.java
+++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/ShowConversationActivity.java
@@ -68,6 +68,7 @@ import fr.gouv.etalab.mastodon.sqlite.AccountDAO;
import fr.gouv.etalab.mastodon.sqlite.Sqlite;
import static fr.gouv.etalab.mastodon.helper.Helper.THEME_BLACK;
+import static fr.gouv.etalab.mastodon.helper.Helper.THEME_LIGHT;
/**
@@ -182,6 +183,9 @@ public class ShowConversationActivity extends BaseActivity implements OnRetrieve
}
});
+ if (theme == THEME_LIGHT){
+ Helper.colorizeToolbar(getSupportActionBar().getCustomView().findViewById(R.id.toolbar), R.color.black, ShowConversationActivity.this);
+ }
}else{
setTitle(R.string.conversation);
}
diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/TootActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/TootActivity.java
index a0baf7b8f..5f7cc0c8d 100644
--- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/TootActivity.java
+++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/TootActivity.java
@@ -42,6 +42,7 @@ import android.os.Build;
import android.os.Bundle;
import android.speech.RecognizerIntent;
import android.support.v7.app.ActionBar;
+import android.support.v7.widget.Toolbar;
import android.text.Editable;
import android.text.Html;
import android.text.InputFilter;
@@ -56,7 +57,6 @@ import android.view.ViewTreeObserver;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
-import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
@@ -182,7 +182,6 @@ public class TootActivity extends BaseActivity implements OnRetrieveSearcAccount
private HorizontalScrollView picture_scrollview;
private int currentCursorPosition, searchLength;
private TextView toot_space_left;
- private ImageButton toot_emoji;
private String initialContent;
private final int MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE = 754;
private Account accountReply;
@@ -198,7 +197,7 @@ public class TootActivity extends BaseActivity implements OnRetrieveSearcAccount
private boolean removed;
private boolean restoredScheduled;
static boolean active = false;
- private static Activity activity;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -222,25 +221,28 @@ public class TootActivity extends BaseActivity implements OnRetrieveSearcAccount
}
setContentView(R.layout.activity_toot);
- activity = this;
ActionBar actionBar = getSupportActionBar();
- if( actionBar != null ){
+ if( actionBar != null ) {
LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
assert inflater != null;
@SuppressLint("InflateParams") View view = inflater.inflate(R.layout.toot_action_bar, null);
actionBar.setCustomView(view, new ActionBar.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
-
ImageView close_toot = actionBar.getCustomView().findViewById(R.id.close_toot);
+
close_toot.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
+ InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
assert inputMethodManager != null;
inputMethodManager.hideSoftInputFromWindow(toot_content.getWindowToken(), 0);
finish();
}
});
+ if (theme == THEME_LIGHT){
+ Toolbar toolbar = actionBar.getCustomView().findViewById(R.id.toolbar);
+ Helper.colorizeToolbar(toolbar, R.color.black, TootActivity.this);
+ }
title = actionBar.getCustomView().findViewById(R.id.toolbar_title);
pp_actionBar = actionBar.getCustomView().findViewById(R.id.pp_actionBar);
pp_progress = actionBar.getCustomView().findViewById(R.id.pp_progress);
@@ -265,7 +267,7 @@ public class TootActivity extends BaseActivity implements OnRetrieveSearcAccount
picture_scrollview = findViewById(R.id.picture_scrollview);
toot_sensitive = findViewById(R.id.toot_sensitive);
drawer_layout = findViewById(R.id.drawer_layout);
- toot_emoji = findViewById(R.id.toot_emoji);
+ ImageButton toot_emoji = findViewById(R.id.toot_emoji);
if( sharedpreferences.getBoolean(Helper.SET_DISPLAY_EMOJI, true)) {
final EmojiPopup emojiPopup = EmojiPopup.Builder.fromRootView(drawer_layout).build(toot_content);
@@ -797,7 +799,7 @@ public class TootActivity extends BaseActivity implements OnRetrieveSearcAccount
}
}
- private static class asyncPicture extends AsyncTask {
+ private class asyncPicture extends AsyncTask {
ByteArrayInputStream bs;
WeakReference activityWeakReference;
@@ -815,7 +817,7 @@ public class TootActivity extends BaseActivity implements OnRetrieveSearcAccount
if( uriFile == null) {
- activity.runOnUiThread(new Runnable() {
+ runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(activityWeakReference.get(), R.string.toast_error, Toast.LENGTH_SHORT).show();
}
@@ -1305,8 +1307,11 @@ public class TootActivity extends BaseActivity implements OnRetrieveSearcAccount
if( itemViewReply != null)
itemViewReply.setVisible(false);
}
- SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
-
+ SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE);
+ int theme = sharedpreferences.getInt(Helper.SET_THEME, Helper.THEME_DARK);
+ if( theme == THEME_LIGHT)
+ Helper.colorizeIconMenu(menu, R.color.black);
+ changeColor();
String instanceVersion = sharedpreferences.getString(Helper.INSTANCE_VERSION + userId + instance, null);
Version currentVersion = new Version(instanceVersion);
Version minVersion = new Version("2.0");
diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/WebviewActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/WebviewActivity.java
index dcc6c7ef8..c66517b58 100644
--- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/WebviewActivity.java
+++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/WebviewActivity.java
@@ -26,6 +26,7 @@ import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
+import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
@@ -47,6 +48,7 @@ import fr.gouv.etalab.mastodon.webview.MastalabWebViewClient;
import fr.gouv.etalab.mastodon.R;
import static fr.gouv.etalab.mastodon.helper.Helper.EXTERNAL_STORAGE_REQUEST_CODE;
+import static fr.gouv.etalab.mastodon.helper.Helper.THEME_LIGHT;
import static fr.gouv.etalab.mastodon.helper.Helper.manageDownloads;
@@ -94,7 +96,6 @@ public class WebviewActivity extends BaseActivity {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
webView = Helper.initializeWebview(WebviewActivity.this, R.id.webview);
-
setTitle("");
FrameLayout webview_container = findViewById(R.id.webview_container);
final ViewGroup videoLayout = findViewById(R.id.videoLayout); // Your own view, read class comments
@@ -150,6 +151,10 @@ public class WebviewActivity extends BaseActivity {
menu.findItem(R.id.action_go).setVisible(false);
menu.findItem(R.id.action_comment).setVisible(true);
}
+ SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE);
+ int theme = sharedpreferences.getInt(Helper.SET_THEME, Helper.THEME_DARK);
+ if( theme == THEME_LIGHT)
+ Helper.colorizeIconMenu(menu, R.color.black);
return true;
}
@Override
diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/WebviewConnectActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/WebviewConnectActivity.java
index 635888897..e302ccff4 100644
--- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/WebviewConnectActivity.java
+++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/WebviewConnectActivity.java
@@ -16,6 +16,7 @@
package fr.gouv.etalab.mastodon.activities;
+import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
@@ -23,13 +24,20 @@ import android.net.Uri;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
+import android.support.v7.app.ActionBar;
import android.support.v7.app.AlertDialog;
+import android.support.v7.widget.Toolbar;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
import android.webkit.CookieManager;
import android.webkit.CookieSyncManager;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
+import android.widget.ImageView;
import android.widget.ProgressBar;
+import android.widget.TextView;
import android.widget.Toast;
@@ -43,6 +51,8 @@ import fr.gouv.etalab.mastodon.client.HttpsConnection;
import fr.gouv.etalab.mastodon.helper.Helper;
import fr.gouv.etalab.mastodon.R;
+import static fr.gouv.etalab.mastodon.helper.Helper.THEME_LIGHT;
+
/**
* Created by Thomas on 24/04/2017.
* Webview to connect accounts
@@ -81,7 +91,27 @@ public class WebviewConnectActivity extends BaseActivity {
finish();
clientId = sharedpreferences.getString(Helper.CLIENT_ID, null);
clientSecret = sharedpreferences.getString(Helper.CLIENT_SECRET, null);
-
+ ActionBar actionBar = getSupportActionBar();
+ if( actionBar != null ) {
+ LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ assert inflater != null;
+ @SuppressLint("InflateParams") View view = inflater.inflate(R.layout.simple_bar, null);
+ actionBar.setCustomView(view, new ActionBar.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
+ actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
+ ImageView toolbar_close = actionBar.getCustomView().findViewById(R.id.toolbar_close);
+ TextView toolbar_title = actionBar.getCustomView().findViewById(R.id.toolbar_title);
+ toolbar_close.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ toolbar_title.setText(R.string.add_account);
+ if (theme == THEME_LIGHT){
+ Toolbar toolbar = actionBar.getCustomView().findViewById(R.id.toolbar);
+ Helper.colorizeToolbar(toolbar, R.color.black, WebviewConnectActivity.this);
+ }
+ }
webView = findViewById(R.id.webviewConnect);
clearCookies(getApplicationContext());
final ProgressBar pbar = findViewById(R.id.progress_bar);
diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java b/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java
index 62653b339..c87e21ba4 100644
--- a/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java
+++ b/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java
@@ -26,6 +26,7 @@ import android.database.Cursor;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.Matrix;
+import android.graphics.PorterDuffColorFilter;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
@@ -68,6 +69,10 @@ 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.support.v7.view.menu.ActionMenuItemView;
+import android.support.v7.view.menu.MenuView;
+import android.support.v7.widget.ActionMenuView;
+import android.support.v7.widget.Toolbar;
import android.text.Html;
import android.text.Spannable;
import android.text.SpannableString;
@@ -82,6 +87,8 @@ import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewTreeObserver;
import android.view.WindowManager;
import android.webkit.CookieManager;
import android.webkit.MimeTypeMap;
@@ -2467,4 +2474,115 @@ public class Helper {
}
return filteredStatus;
}
+
+
+ public static void colorizeIconMenu(Menu menu, int toolbarIconsColor) {
+ final PorterDuffColorFilter colorFilter
+ = new PorterDuffColorFilter(toolbarIconsColor, PorterDuff.Mode.MULTIPLY);
+ for(int i = 0; i < menu.size(); i++) {
+ MenuItem v = menu.getItem(i);
+ v.getIcon().setColorFilter(colorFilter);
+ }
+ }
+
+ /**
+ * Code from "Michal Pawlowski"
+ * https://snow.dog/blog/how-to-dynamicaly-change-android-toolbar-icons-color
+ * @param toolbarView toolbar view being colored
+ * @param toolbarIconsColor the target color of toolbar icons
+ * @param activity reference to activity needed to register observers
+ */
+ public static void colorizeToolbar(Toolbar toolbarView, int toolbarIconsColor, Activity activity) {
+ final PorterDuffColorFilter colorFilter
+ = new PorterDuffColorFilter(toolbarIconsColor, PorterDuff.Mode.SRC_ATOP);
+
+ for(int i = 0; i < toolbarView.getChildCount(); i++) {
+ final View v = toolbarView.getChildAt(i);
+
+ //Step 1 : Changing the color of back button (or open drawer button).
+ if(v instanceof ImageButton) {
+ //Action Bar back button
+ ((ImageButton)v).getDrawable().setColorFilter(colorFilter);
+ }
+ if(v instanceof ImageView) {
+ //Action Bar back button
+ if( v.getId() != R.id.pp_actionBar)
+ ((ImageView)v).setColorFilter(colorFilter);
+ }
+ if(v instanceof MenuItem) {
+ ((MenuItem)v).getIcon().setColorFilter(colorFilter);
+ }
+
+ if(v instanceof ActionMenuView) {
+ for(int j = 0; j < ((ActionMenuView)v).getChildCount(); j++) {
+
+ //Step 2: Changing the color of any ActionMenuViews - icons that
+ //are not back button, nor text, nor overflow menu icon.
+ final View innerView = ((ActionMenuView)v).getChildAt(j);
+
+ if(innerView instanceof ActionMenuItemView) {
+ int drawablesCount = ((ActionMenuItemView)innerView).getCompoundDrawables().length;
+ for(int k = 0; k < drawablesCount; k++) {
+ if(((ActionMenuItemView)innerView).getCompoundDrawables()[k] != null) {
+ final int finalK = k;
+
+ //Important to set the color filter in seperate thread,
+ //by adding it to the message queue
+ //Won't work otherwise.
+ innerView.post(new Runnable() {
+ @Override
+ public void run() {
+ ((ActionMenuItemView) innerView).getCompoundDrawables()[finalK].setColorFilter(colorFilter);
+ }
+ });
+ }
+ }
+ }
+ }
+ }
+
+ //Step 3: Changing the color of title and subtitle.
+ toolbarView.setTitleTextColor(toolbarIconsColor);
+ toolbarView.setSubtitleTextColor(toolbarIconsColor);
+
+ //Step 4: Changing the color of the Overflow Menu icon.
+ setOverflowButtonColor(activity, colorFilter);
+ }
+ }
+
+ /**
+ * It's important to set overflowDescription atribute in styles, so we can grab the reference
+ * to the overflow icon. Check: res/values/styles.xml
+ * @param activity
+ * @param colorFilter
+ */
+ private static void setOverflowButtonColor(final Activity activity, final PorterDuffColorFilter colorFilter) {
+ @SuppressLint("PrivateResource")
+ final String overflowDescription = activity.getString(R.string.abc_action_menu_overflow_description);
+ final ViewGroup decorView = (ViewGroup) activity.getWindow().getDecorView();
+ final ViewTreeObserver viewTreeObserver = decorView.getViewTreeObserver();
+ viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
+ @Override
+ public void onGlobalLayout() {
+ final ArrayList outViews = new ArrayList<>();
+ decorView.findViewsWithText(outViews, overflowDescription,
+ View.FIND_VIEWS_WITH_CONTENT_DESCRIPTION);
+ if (outViews.isEmpty()) {
+ return;
+ }
+ android.support.v7.widget.AppCompatImageView overflow=(android.support.v7.widget.AppCompatImageView) outViews.get(0);
+ overflow.setColorFilter(colorFilter);
+ removeOnGlobalLayoutListener(decorView,this);
+ }
+ });
+ }
+
+ private static void removeOnGlobalLayoutListener(View v, ViewTreeObserver.OnGlobalLayoutListener listener) {
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
+ v.getViewTreeObserver().removeGlobalOnLayoutListener(listener);
+ }
+ else {
+ v.getViewTreeObserver().removeOnGlobalLayoutListener(listener);
+ }
+ }
}
diff --git a/app/src/main/res/layout-sw600dp/activity_show_account.xml b/app/src/main/res/layout-sw600dp/activity_show_account.xml
index 904508aab..d6cd0fb7e 100644
--- a/app/src/main/res/layout-sw600dp/activity_show_account.xml
+++ b/app/src/main/res/layout-sw600dp/activity_show_account.xml
@@ -28,7 +28,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
- android:theme="@style/AppTheme.AppBarOverlay">
+ >
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 3ed13b4d8..9f0d83e07 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -1,24 +1,20 @@
-
-
-
-
+
+
-