Fix login + notifications
This commit is contained in:
parent
7e01c841e1
commit
0f821c8f78
|
@ -196,7 +196,7 @@ public abstract class BaseMainActivity extends BaseActivity
|
||||||
private Stack<Integer> stackBack = new Stack<>();
|
private Stack<Integer> stackBack = new Stack<>();
|
||||||
public static List<Filters> filters = new ArrayList<>();
|
public static List<Filters> filters = new ArrayList<>();
|
||||||
private DisplayStatusFragment homeFragment, federatedFragment, localFragment, artFragment;
|
private DisplayStatusFragment homeFragment, federatedFragment, localFragment, artFragment;
|
||||||
private DisplayNotificationsFragment notificationsFragment;
|
private TabLayoutNotificationsFragment tabLayoutNotificationsFragment;
|
||||||
private static final int ERROR_DIALOG_REQUEST_CODE = 97;
|
private static final int ERROR_DIALOG_REQUEST_CODE = 97;
|
||||||
|
|
||||||
private boolean display_direct, display_local, display_global, display_art;
|
private boolean display_direct, display_local, display_global, display_art;
|
||||||
|
@ -496,7 +496,7 @@ public abstract class BaseMainActivity extends BaseActivity
|
||||||
@Override
|
@Override
|
||||||
public boolean onLongClick(View v) {
|
public boolean onLongClick(View v) {
|
||||||
//Only shown if the tab has focus
|
//Only shown if the tab has focus
|
||||||
if( notificationsFragment != null && notificationsFragment.getUserVisibleHint()){
|
if( tabLayoutNotificationsFragment != null && tabLayoutNotificationsFragment.getUserVisibleHint()){
|
||||||
PopupMenu popup = new PopupMenu(BaseMainActivity.this, tabStrip.getChildAt(1));
|
PopupMenu popup = new PopupMenu(BaseMainActivity.this, tabStrip.getChildAt(1));
|
||||||
popup.getMenuInflater()
|
popup.getMenuInflater()
|
||||||
.inflate(R.menu.option_filter_notifications, popup.getMenu());
|
.inflate(R.menu.option_filter_notifications, popup.getMenu());
|
||||||
|
@ -516,8 +516,8 @@ public abstract class BaseMainActivity extends BaseActivity
|
||||||
popup.setOnDismissListener(new PopupMenu.OnDismissListener() {
|
popup.setOnDismissListener(new PopupMenu.OnDismissListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onDismiss(PopupMenu menu) {
|
public void onDismiss(PopupMenu menu) {
|
||||||
if( notificationsFragment != null)
|
if( tabLayoutNotificationsFragment != null)
|
||||||
notificationsFragment.refreshAll();
|
tabLayoutNotificationsFragment.refreshAll();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
|
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
|
||||||
|
@ -2042,8 +2042,8 @@ public abstract class BaseMainActivity extends BaseActivity
|
||||||
if( lastHomeId != null && homeFragment != null){
|
if( lastHomeId != null && homeFragment != null){
|
||||||
homeFragment.retrieveMissingToots(lastHomeId);
|
homeFragment.retrieveMissingToots(lastHomeId);
|
||||||
}
|
}
|
||||||
if( lastNotificationId != null && notificationsFragment != null){
|
if( lastNotificationId != null && tabLayoutNotificationsFragment != null){
|
||||||
notificationsFragment.retrieveMissingNotifications(lastNotificationId);
|
tabLayoutNotificationsFragment.retrieveMissingNotifications(lastNotificationId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2482,7 +2482,7 @@ public abstract class BaseMainActivity extends BaseActivity
|
||||||
homeFragment.setArguments(bundle);
|
homeFragment.setArguments(bundle);
|
||||||
return homeFragment;
|
return homeFragment;
|
||||||
} else if (position == 1) {
|
} else if (position == 1) {
|
||||||
TabLayoutNotificationsFragment tabLayoutNotificationsFragment = new TabLayoutNotificationsFragment();
|
tabLayoutNotificationsFragment = new TabLayoutNotificationsFragment();
|
||||||
return tabLayoutNotificationsFragment;
|
return tabLayoutNotificationsFragment;
|
||||||
} else {
|
} else {
|
||||||
statusFragment = new DisplayStatusFragment();
|
statusFragment = new DisplayStatusFragment();
|
||||||
|
|
|
@ -16,7 +16,6 @@ package fr.gouv.etalab.mastodon.asynctasks;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
|
|
||||||
|
@ -27,7 +26,6 @@ import fr.gouv.etalab.mastodon.client.Entities.Account;
|
||||||
import fr.gouv.etalab.mastodon.client.Entities.Error;
|
import fr.gouv.etalab.mastodon.client.Entities.Error;
|
||||||
import fr.gouv.etalab.mastodon.client.GNUAPI;
|
import fr.gouv.etalab.mastodon.client.GNUAPI;
|
||||||
import fr.gouv.etalab.mastodon.fragments.DisplayNotificationsFragment;
|
import fr.gouv.etalab.mastodon.fragments.DisplayNotificationsFragment;
|
||||||
import fr.gouv.etalab.mastodon.helper.Helper;
|
|
||||||
import fr.gouv.etalab.mastodon.interfaces.OnRetrieveNotificationsInterface;
|
import fr.gouv.etalab.mastodon.interfaces.OnRetrieveNotificationsInterface;
|
||||||
|
|
||||||
|
|
||||||
|
@ -62,7 +60,6 @@ public class RetrieveNotificationsAsyncTask extends AsyncTask<Void, Void, Void>
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Void doInBackground(Void... params) {
|
protected Void doInBackground(Void... params) {
|
||||||
Log.v(Helper.TAG,"MainActivity.social : " + MainActivity.social );
|
|
||||||
if(MainActivity.social != UpdateAccountInfoAsyncTask.SOCIAL.GNU) {
|
if(MainActivity.social != UpdateAccountInfoAsyncTask.SOCIAL.GNU) {
|
||||||
API api;
|
API api;
|
||||||
if (account == null) {
|
if (account == null) {
|
||||||
|
|
|
@ -134,6 +134,11 @@ public class API {
|
||||||
}
|
}
|
||||||
public API(Context context) {
|
public API(Context context) {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
|
if( context == null) {
|
||||||
|
APIError = new Error();
|
||||||
|
APIError.setError(context.getString(R.string.toast_error));
|
||||||
|
return;
|
||||||
|
}
|
||||||
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
tootPerPage = sharedpreferences.getInt(Helper.SET_TOOTS_PER_PAGE, 40);
|
tootPerPage = sharedpreferences.getInt(Helper.SET_TOOTS_PER_PAGE, 40);
|
||||||
accountPerPage = sharedpreferences.getInt(Helper.SET_ACCOUNTS_PER_PAGE, 40);
|
accountPerPage = sharedpreferences.getInt(Helper.SET_ACCOUNTS_PER_PAGE, 40);
|
||||||
|
|
|
@ -20,7 +20,6 @@ import android.content.SharedPreferences;
|
||||||
import android.database.sqlite.SQLiteDatabase;
|
import android.database.sqlite.SQLiteDatabase;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v4.content.LocalBroadcastManager;
|
import android.support.v4.content.LocalBroadcastManager;
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
|
@ -1495,6 +1494,7 @@ public class GNUAPI {
|
||||||
private APIResponse getNotifications(DisplayNotificationsFragment.Type type, String max_id, String since_id, int limit, boolean display){
|
private APIResponse getNotifications(DisplayNotificationsFragment.Type type, String max_id, String since_id, int limit, boolean display){
|
||||||
|
|
||||||
HashMap<String, String> params = new HashMap<>();
|
HashMap<String, String> params = new HashMap<>();
|
||||||
|
String stringType = null;
|
||||||
if( max_id != null )
|
if( max_id != null )
|
||||||
params.put("_", max_id);
|
params.put("_", max_id);
|
||||||
if( since_id != null )
|
if( since_id != null )
|
||||||
|
@ -1502,16 +1502,60 @@ public class GNUAPI {
|
||||||
if( 0 > limit || limit > 30)
|
if( 0 > limit || limit > 30)
|
||||||
limit = 30;
|
limit = 30;
|
||||||
params.put("count",String.valueOf(limit));
|
params.put("count",String.valueOf(limit));
|
||||||
params.put("namespace","qvitter");
|
|
||||||
List<Notification> notifications = new ArrayList<>();
|
List<Notification> notifications = new ArrayList<>();
|
||||||
|
String url = null;
|
||||||
|
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
|
//Current user
|
||||||
|
String currentToken = sharedpreferences.getString(PREF_KEY_OAUTH_TOKEN, null);
|
||||||
|
SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
|
||||||
|
Account account = new AccountDAO(context, db).getAccountByToken(currentToken);
|
||||||
|
if(type == DisplayNotificationsFragment.Type.MENTION){
|
||||||
|
params.put("name",account.getAcct());
|
||||||
|
url = getAbsoluteUrl("/statuses/mentions_timeline.json");
|
||||||
|
stringType = "mention";
|
||||||
|
}else if(type == DisplayNotificationsFragment.Type.BOOST){
|
||||||
|
url = getAbsoluteUrl("/statuses/retweets_of_me.json");
|
||||||
|
stringType = "reblog";
|
||||||
|
}else if(type == DisplayNotificationsFragment.Type.FOLLOW){
|
||||||
|
url = getAbsoluteUrl("/statuses/followers.json");
|
||||||
|
stringType = "follow";
|
||||||
|
}
|
||||||
|
if( url == null){
|
||||||
|
Error error = new Error();
|
||||||
|
error.setStatusCode(500);
|
||||||
|
error.setError(context.getString(R.string.toast_error));
|
||||||
|
apiResponse.setError(error);
|
||||||
|
return apiResponse;
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
HttpsConnection httpsConnection = new HttpsConnection(context);
|
HttpsConnection httpsConnection = new HttpsConnection(context);
|
||||||
String response = httpsConnection.get(getAbsoluteUrl("/qvitter/statuses/notifications.json"), 60, params, prefKeyOauthTokenT);
|
String response = httpsConnection.get(url, 60, params, prefKeyOauthTokenT);
|
||||||
Log.v(Helper.TAG,"response= " + response);
|
|
||||||
apiResponse.setSince_id(httpsConnection.getSince_id());
|
apiResponse.setSince_id(httpsConnection.getSince_id());
|
||||||
apiResponse.setMax_id(httpsConnection.getMax_id());
|
apiResponse.setMax_id(httpsConnection.getMax_id());
|
||||||
notifications = parseNotificationResponse(new JSONArray(response));
|
List<Status> statuses = parseStatuses(context, new JSONArray(response));
|
||||||
|
List<Account> accounts = parseAccountResponse(new JSONArray(response));
|
||||||
|
if(type == DisplayNotificationsFragment.Type.FOLLOW){
|
||||||
|
if( accounts != null)
|
||||||
|
for(Account st: accounts ){
|
||||||
|
Notification notification = new Notification();
|
||||||
|
notification.setType(stringType);
|
||||||
|
notification.setId(st.getId());
|
||||||
|
notification.setStatus(null);
|
||||||
|
notification.setAccount(account);
|
||||||
|
notifications.add(notification);
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
if( statuses != null)
|
||||||
|
for(Status st: statuses ){
|
||||||
|
Notification notification = new Notification();
|
||||||
|
notification.setType(stringType);
|
||||||
|
notification.setId(st.getId());
|
||||||
|
notification.setStatus(st);
|
||||||
|
notification.setAccount(st.getAccount());
|
||||||
|
notifications.add(notification);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} catch (HttpsConnection.HttpsConnectionException e) {
|
} catch (HttpsConnection.HttpsConnectionException e) {
|
||||||
setError(e.getStatusCode(), e);
|
setError(e.getStatusCode(), e);
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
@ -1865,7 +1909,10 @@ public class GNUAPI {
|
||||||
Account account = new Account();
|
Account account = new Account();
|
||||||
try {
|
try {
|
||||||
account.setId(resobj.get("id").toString());
|
account.setId(resobj.get("id").toString());
|
||||||
account.setUuid(resobj.get("ostatus_uri").toString());
|
if( resobj.has("ostatus_uri"))
|
||||||
|
account.setUuid(resobj.get("ostatus_uri").toString());
|
||||||
|
else
|
||||||
|
account.setUuid(resobj.get("id").toString());
|
||||||
account.setUsername(resobj.get("name").toString());
|
account.setUsername(resobj.get("name").toString());
|
||||||
account.setAcct(resobj.get("name").toString());
|
account.setAcct(resobj.get("name").toString());
|
||||||
account.setDisplay_name(resobj.get("screen_name").toString());
|
account.setDisplay_name(resobj.get("screen_name").toString());
|
||||||
|
@ -1880,8 +1927,13 @@ public class GNUAPI {
|
||||||
account.setUrl(resobj.get("url").toString());
|
account.setUrl(resobj.get("url").toString());
|
||||||
account.setAvatar(resobj.get("profile_image_url_https").toString());
|
account.setAvatar(resobj.get("profile_image_url_https").toString());
|
||||||
account.setAvatar_static(resobj.get("profile_image_url_https").toString());
|
account.setAvatar_static(resobj.get("profile_image_url_https").toString());
|
||||||
account.setHeader(resobj.get("background_image").toString());
|
if( !resobj.isNull("background_image")) {
|
||||||
account.setHeader_static(resobj.get("background_image").toString());
|
account.setHeader(resobj.get("background_image").toString());
|
||||||
|
account.setHeader_static(resobj.get("background_image").toString());
|
||||||
|
}else{
|
||||||
|
account.setHeader("null");
|
||||||
|
account.setHeader_static("null");
|
||||||
|
}
|
||||||
account.setSocial("GNU");
|
account.setSocial("GNU");
|
||||||
|
|
||||||
account.setEmojis(new ArrayList<>());
|
account.setEmojis(new ArrayList<>());
|
||||||
|
|
|
@ -13,6 +13,7 @@ package fr.gouv.etalab.mastodon.fragments;
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License along with Mastalab; if not,
|
* You should have received a copy of the GNU General Public License along with Mastalab; if not,
|
||||||
* see <http://www.gnu.org/licenses>. */
|
* see <http://www.gnu.org/licenses>. */
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
|
@ -47,13 +48,14 @@ import static fr.gouv.etalab.mastodon.helper.Helper.THEME_LIGHT;
|
||||||
public class TabLayoutNotificationsFragment extends Fragment {
|
public class TabLayoutNotificationsFragment extends Fragment {
|
||||||
|
|
||||||
private Context context;
|
private Context context;
|
||||||
|
private ViewPager viewPager;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
|
|
||||||
context = getContext();
|
context = getContext();
|
||||||
View inflatedView = inflater.inflate(R.layout.tablayout_settings, container, false);
|
View inflatedView = inflater.inflate(R.layout.tablayout_notifications, container, false);
|
||||||
|
|
||||||
TabLayout tabLayout = inflatedView.findViewById(R.id.tabLayout);
|
TabLayout tabLayout = inflatedView.findViewById(R.id.tabLayout);
|
||||||
|
|
||||||
|
@ -66,10 +68,14 @@ public class TabLayoutNotificationsFragment extends Fragment {
|
||||||
TabLayout.Tab tabFollow = tabLayout.newTab();
|
TabLayout.Tab tabFollow = tabLayout.newTab();
|
||||||
|
|
||||||
tabMention.setCustomView(R.layout.tab_badge);
|
tabMention.setCustomView(R.layout.tab_badge);
|
||||||
tabFav.setCustomView(R.layout.tab_badge);
|
if(MainActivity.social != UpdateAccountInfoAsyncTask.SOCIAL.GNU)
|
||||||
|
tabFav.setCustomView(R.layout.tab_badge);
|
||||||
tabBoost.setCustomView(R.layout.tab_badge);
|
tabBoost.setCustomView(R.layout.tab_badge);
|
||||||
tabFollow.setCustomView(R.layout.tab_badge);
|
tabFollow.setCustomView(R.layout.tab_badge);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
int theme = sharedpreferences.getInt(Helper.SET_THEME, Helper.THEME_DARK);
|
int theme = sharedpreferences.getInt(Helper.SET_THEME, Helper.THEME_DARK);
|
||||||
|
|
||||||
|
@ -78,18 +84,28 @@ public class TabLayoutNotificationsFragment extends Fragment {
|
||||||
iconMention.setImageResource(R.drawable.ic_mention_notif_tab);
|
iconMention.setImageResource(R.drawable.ic_mention_notif_tab);
|
||||||
|
|
||||||
|
|
||||||
@SuppressWarnings("ConstantConditions") @SuppressLint("CutPasteId")
|
ImageView iconFav =null;
|
||||||
ImageView iconFav = tabMention.getCustomView().findViewById(R.id.tab_icon);
|
if( tabFav.getCustomView() != null) {
|
||||||
iconFav.setImageResource(R.drawable.ic_star_notif_tab);
|
iconFav = tabFav.getCustomView().findViewById(R.id.tab_icon);
|
||||||
|
iconFav.setImageResource(R.drawable.ic_star_notif_tab);
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressWarnings("ConstantConditions") @SuppressLint("CutPasteId")
|
@SuppressWarnings("ConstantConditions") @SuppressLint("CutPasteId")
|
||||||
ImageView iconBoost = tabMention.getCustomView().findViewById(R.id.tab_icon);
|
ImageView iconBoost = tabBoost.getCustomView().findViewById(R.id.tab_icon);
|
||||||
iconBoost.setImageResource(R.drawable.ic_repeat_notif_tab);
|
iconBoost.setImageResource(R.drawable.ic_repeat_notif_tab);
|
||||||
|
|
||||||
@SuppressWarnings("ConstantConditions") @SuppressLint("CutPasteId")
|
@SuppressWarnings("ConstantConditions") @SuppressLint("CutPasteId")
|
||||||
ImageView iconFollow = tabMention.getCustomView().findViewById(R.id.tab_icon);
|
ImageView iconFollow = tabFollow.getCustomView().findViewById(R.id.tab_icon);
|
||||||
iconFollow.setImageResource(R.drawable.ic_follow_notif_tab);
|
iconFollow.setImageResource(R.drawable.ic_follow_notif_tab);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
tabLayout.addTab(tabMention);
|
||||||
|
if( tabFav.getCustomView() != null)
|
||||||
|
tabLayout.addTab(tabFav);
|
||||||
|
tabLayout.addTab(tabBoost);
|
||||||
|
tabLayout.addTab(tabFollow);
|
||||||
|
|
||||||
if (theme == THEME_BLACK)
|
if (theme == THEME_BLACK)
|
||||||
iconMention.setColorFilter(ContextCompat.getColor(context, R.color.dark_icon), PorterDuff.Mode.SRC_IN);
|
iconMention.setColorFilter(ContextCompat.getColor(context, R.color.dark_icon), PorterDuff.Mode.SRC_IN);
|
||||||
else
|
else
|
||||||
|
@ -97,18 +113,19 @@ public class TabLayoutNotificationsFragment extends Fragment {
|
||||||
|
|
||||||
if (theme == THEME_LIGHT) {
|
if (theme == THEME_LIGHT) {
|
||||||
iconMention.setColorFilter(ContextCompat.getColor(context, R.color.action_light_header), PorterDuff.Mode.SRC_IN);
|
iconMention.setColorFilter(ContextCompat.getColor(context, R.color.action_light_header), PorterDuff.Mode.SRC_IN);
|
||||||
iconFav.setColorFilter(ContextCompat.getColor(context, R.color.action_light_header), PorterDuff.Mode.SRC_IN);
|
if( iconFav != null)
|
||||||
|
iconFav.setColorFilter(ContextCompat.getColor(context, R.color.action_light_header), PorterDuff.Mode.SRC_IN);
|
||||||
iconBoost.setColorFilter(ContextCompat.getColor(context, R.color.action_light_header), PorterDuff.Mode.SRC_IN);
|
iconBoost.setColorFilter(ContextCompat.getColor(context, R.color.action_light_header), PorterDuff.Mode.SRC_IN);
|
||||||
iconFollow.setColorFilter(ContextCompat.getColor(context, R.color.action_light_header), PorterDuff.Mode.SRC_IN);
|
iconFollow.setColorFilter(ContextCompat.getColor(context, R.color.action_light_header), PorterDuff.Mode.SRC_IN);
|
||||||
} else {
|
} else {
|
||||||
iconMention.setColorFilter(ContextCompat.getColor(context, R.color.dark_text), PorterDuff.Mode.SRC_IN);
|
iconMention.setColorFilter(ContextCompat.getColor(context, R.color.dark_text), PorterDuff.Mode.SRC_IN);
|
||||||
iconFav.setColorFilter(ContextCompat.getColor(context, R.color.dark_text), PorterDuff.Mode.SRC_IN);
|
if( iconFav != null)
|
||||||
|
iconFav.setColorFilter(ContextCompat.getColor(context, R.color.dark_text), PorterDuff.Mode.SRC_IN);
|
||||||
iconBoost.setColorFilter(ContextCompat.getColor(context, R.color.dark_text), PorterDuff.Mode.SRC_IN);
|
iconBoost.setColorFilter(ContextCompat.getColor(context, R.color.dark_text), PorterDuff.Mode.SRC_IN);
|
||||||
iconFollow.setColorFilter(ContextCompat.getColor(context, R.color.dark_text), PorterDuff.Mode.SRC_IN);
|
iconFollow.setColorFilter(ContextCompat.getColor(context, R.color.dark_text), PorterDuff.Mode.SRC_IN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
viewPager = inflatedView.findViewById(R.id.viewpager);
|
||||||
final ViewPager viewPager = inflatedView.findViewById(R.id.viewpager);
|
|
||||||
|
|
||||||
viewPager.setAdapter(new PagerAdapter
|
viewPager.setAdapter(new PagerAdapter
|
||||||
(getChildFragmentManager(), tabLayout.getTabCount()));
|
(getChildFragmentManager(), tabLayout.getTabCount()));
|
||||||
|
@ -154,30 +171,28 @@ public class TabLayoutNotificationsFragment extends Fragment {
|
||||||
public Fragment getItem(int position) {
|
public Fragment getItem(int position) {
|
||||||
DisplayNotificationsFragment displayNotificationsFragment = new DisplayNotificationsFragment();
|
DisplayNotificationsFragment displayNotificationsFragment = new DisplayNotificationsFragment();
|
||||||
DisplayNotificationsFragment.Type type = null;
|
DisplayNotificationsFragment.Type type = null;
|
||||||
|
String tag = "";
|
||||||
switch (position) {
|
switch (position) {
|
||||||
case 0:
|
case 0:
|
||||||
if( MainActivity.social != UpdateAccountInfoAsyncTask.SOCIAL.GNU )
|
if( MainActivity.social != UpdateAccountInfoAsyncTask.SOCIAL.GNU ) {
|
||||||
type = DisplayNotificationsFragment.Type.ALL;
|
type = DisplayNotificationsFragment.Type.ALL;
|
||||||
else
|
}else
|
||||||
type = DisplayNotificationsFragment.Type.MENTION;
|
type = DisplayNotificationsFragment.Type.MENTION;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
if( MainActivity.social != UpdateAccountInfoAsyncTask.SOCIAL.GNU )
|
if( MainActivity.social != UpdateAccountInfoAsyncTask.SOCIAL.GNU )
|
||||||
type = DisplayNotificationsFragment.Type.MENTION;
|
type = DisplayNotificationsFragment.Type.MENTION;
|
||||||
else
|
else
|
||||||
type = DisplayNotificationsFragment.Type.FAVORITE;
|
type = DisplayNotificationsFragment.Type.BOOST;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if( MainActivity.social != UpdateAccountInfoAsyncTask.SOCIAL.GNU )
|
if( MainActivity.social != UpdateAccountInfoAsyncTask.SOCIAL.GNU )
|
||||||
type = DisplayNotificationsFragment.Type.FAVORITE;
|
type = DisplayNotificationsFragment.Type.FAVORITE;
|
||||||
else
|
else
|
||||||
type = DisplayNotificationsFragment.Type.BOOST;
|
type = DisplayNotificationsFragment.Type.FOLLOW;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
if( MainActivity.social != UpdateAccountInfoAsyncTask.SOCIAL.GNU )
|
type = DisplayNotificationsFragment.Type.BOOST;
|
||||||
type = DisplayNotificationsFragment.Type.BOOST;
|
|
||||||
else
|
|
||||||
type = DisplayNotificationsFragment.Type.FOLLOW;
|
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
type = DisplayNotificationsFragment.Type.FOLLOW;
|
type = DisplayNotificationsFragment.Type.FOLLOW;
|
||||||
|
@ -192,9 +207,27 @@ public class TabLayoutNotificationsFragment extends Fragment {
|
||||||
return displayNotificationsFragment;
|
return displayNotificationsFragment;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getCount() {
|
public int getCount() {
|
||||||
return mNumOfTabs;
|
return mNumOfTabs;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void refreshAll(){
|
||||||
|
|
||||||
|
FragmentStatePagerAdapter a = (FragmentStatePagerAdapter) viewPager.getAdapter();
|
||||||
|
if( a != null) {
|
||||||
|
DisplayNotificationsFragment notifAll = (DisplayNotificationsFragment) a.instantiateItem(viewPager, 0);
|
||||||
|
notifAll.refreshAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void retrieveMissingNotifications(String sinceId){
|
||||||
|
FragmentStatePagerAdapter a = (FragmentStatePagerAdapter) viewPager.getAdapter();
|
||||||
|
if( a != null) {
|
||||||
|
DisplayNotificationsFragment notifAll = (DisplayNotificationsFragment) a.instantiateItem(viewPager, 0);
|
||||||
|
notifAll.retrieveMissingNotifications(sinceId);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,40 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
Copyright 2019 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 <http://www.gnu.org/licenses>.
|
||||||
|
-->
|
||||||
|
<LinearLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:background="@null"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<android.support.design.widget.TabLayout
|
||||||
|
android:id="@+id/tabLayout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
app:tabGravity="fill"
|
||||||
|
app:tabMaxWidth="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<android.support.v4.view.ViewPager
|
||||||
|
android:id="@+id/viewpager"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
Loading…
Reference in New Issue