From 9d285958a7e87956935a6f75aa5d4b4c1abcd401 Mon Sep 17 00:00:00 2001 From: stom79 Date: Sat, 3 Nov 2018 17:02:44 +0100 Subject: [PATCH] Fix some crashes --- .../mastodon/activities/BaseMainActivity.java | 2 +- .../mastodon/activities/PeertubeActivity.java | 34 ++++++++++++++++--- .../mastodon/activities/PrivacyActivity.java | 31 +++++++++++++++-- 3 files changed, 59 insertions(+), 8 deletions(-) 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 162a6b166..acf150747 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 @@ -274,6 +274,7 @@ public abstract class BaseMainActivity extends BaseActivity TabLayout.Tab tabLocal = tabLayout.newTab(); TabLayout.Tab tabPublic = tabLayout.newTab(); + tabHome.setCustomView(R.layout.tab_badge); tabNotif.setCustomView(R.layout.tab_badge); tabDirect.setCustomView(R.layout.tab_badge); @@ -690,7 +691,6 @@ public abstract class BaseMainActivity extends BaseActivity if( display_global) tabLayout.addTab(tabPublic); - //Display filter for notification when long pressing the tab final LinearLayout tabStrip = (LinearLayout) tabLayout.getChildAt(0); tabStrip.getChildAt(1).setOnLongClickListener(new View.OnLongClickListener() { 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 7ca219070..74d14b9b5 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 @@ -16,6 +16,7 @@ package fr.gouv.etalab.mastodon.activities; import android.Manifest; +import android.annotation.SuppressLint; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; @@ -30,18 +31,22 @@ import android.os.Build; import android.os.Bundle; 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.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.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; +import android.view.ViewGroup; import android.view.WindowManager; import android.widget.ArrayAdapter; import android.widget.Button; +import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.ScrollView; import android.widget.TextView; @@ -94,6 +99,7 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube private FullScreenMediaController fullScreenMediaController; private int stopPosition; private Peertube peertube; + private TextView toolbar_title; @Override protected void onCreate(Bundle savedInstanceState) { @@ -135,9 +141,25 @@ 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); + 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); + toolbar_title = actionBar.getCustomView().findViewById(R.id.toolbar_title); + toolbar_close.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + if (theme == THEME_LIGHT){ + Toolbar toolbar = actionBar.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); @@ -165,6 +187,10 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube getMenuInflater().inflate(R.menu.main_webview, menu); 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 @@ -248,7 +274,7 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube } SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); - setTitle(peertube.getName()); + toolbar_title.setText(peertube.getName()); peertube_description.setText(peertube.getDescription()); peertube_title.setText(peertube.getName()); peertube_dislike_count.setText(String.valueOf(peertube.getDislike())); 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 5aae8b6b2..1087bbeba 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 @@ -15,10 +15,18 @@ package fr.gouv.etalab.mastodon.activities; +import android.annotation.SuppressLint; +import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; +import android.support.v7.app.ActionBar; import android.support.v7.widget.Toolbar; +import android.view.LayoutInflater; import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; import fr.gouv.etalab.mastodon.R; import fr.gouv.etalab.mastodon.helper.Helper; @@ -54,9 +62,26 @@ 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); + 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_privacy); + if (theme == THEME_LIGHT){ + Toolbar toolbar = actionBar.getCustomView().findViewById(R.id.toolbar); + Helper.colorizeToolbar(toolbar, R.color.black, PrivacyActivity.this); + } } setContentView(R.layout.activity_privacy); setTitle(getString(R.string.action_privacy));