Swipes left/right to change current timeline
This commit is contained in:
parent
e248db9d34
commit
578abfd44a
|
@ -26,5 +26,7 @@ dependencies {
|
||||||
compile 'com.loopj.android:android-async-http:1.4.9'
|
compile 'com.loopj.android:android-async-http:1.4.9'
|
||||||
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
|
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
|
||||||
compile 'com.evernote:android-job:1.1.10'
|
compile 'com.evernote:android-job:1.1.10'
|
||||||
compile 'com.vdurmont:emoji-java:3.2.0'
|
compile ('com.vdurmont:emoji-java:3.2.0') {
|
||||||
|
exclude group: 'org.json'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,6 +24,7 @@ import android.support.annotation.NonNull;
|
||||||
import android.support.design.widget.FloatingActionButton;
|
import android.support.design.widget.FloatingActionButton;
|
||||||
import android.support.v4.app.FragmentManager;
|
import android.support.v4.app.FragmentManager;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
|
import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.support.design.widget.NavigationView;
|
import android.support.design.widget.NavigationView;
|
||||||
import android.support.v4.view.GravityCompat;
|
import android.support.v4.view.GravityCompat;
|
||||||
|
@ -81,7 +82,15 @@ public class MainActivity extends AppCompatActivity
|
||||||
private ImageLoader imageLoader;
|
private ImageLoader imageLoader;
|
||||||
private DisplayImageOptions options;
|
private DisplayImageOptions options;
|
||||||
private View headerLayout;
|
private View headerLayout;
|
||||||
|
static final int MIN_DISTANCE = 150;
|
||||||
|
private float downX, downY;
|
||||||
|
private int currentScreen = 1;
|
||||||
|
private actionSwipe currentAction;
|
||||||
|
|
||||||
|
private enum actionSwipe{
|
||||||
|
RIGHT_TO_LEFT,
|
||||||
|
LEFT_TO_RIGHT
|
||||||
|
}
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
@ -407,17 +416,27 @@ public class MainActivity extends AppCompatActivity
|
||||||
Bundle bundle = new Bundle();
|
Bundle bundle = new Bundle();
|
||||||
FragmentManager fragmentManager = getSupportFragmentManager();
|
FragmentManager fragmentManager = getSupportFragmentManager();
|
||||||
String fragmentTag = null;
|
String fragmentTag = null;
|
||||||
|
currentScreen = -1;
|
||||||
if (id == R.id.nav_home) {
|
if (id == R.id.nav_home) {
|
||||||
toot.setVisibility(View.VISIBLE);
|
toot.setVisibility(View.VISIBLE);
|
||||||
statusFragment = new DisplayStatusFragment();
|
statusFragment = new DisplayStatusFragment();
|
||||||
bundle.putSerializable("type", RetrieveFeedsAsyncTask.Type.HOME);
|
bundle.putSerializable("type", RetrieveFeedsAsyncTask.Type.HOME);
|
||||||
statusFragment.setArguments(bundle);
|
statusFragment.setArguments(bundle);
|
||||||
fragmentTag = "HOME_TIMELINE";
|
fragmentTag = "HOME_TIMELINE";
|
||||||
if(! first)
|
currentScreen = 1;
|
||||||
fragmentManager.beginTransaction()
|
if(! first) {
|
||||||
|
if( currentAction == actionSwipe.LEFT_TO_RIGHT)
|
||||||
|
fragmentManager.beginTransaction().setCustomAnimations(R.anim.enter_from_right, R.anim.exit_to_left, R.anim.enter_from_left, R.anim.exit_to_right)
|
||||||
.replace(R.id.main_app_container, statusFragment, fragmentTag).addToBackStack(fragmentTag).commit();
|
.replace(R.id.main_app_container, statusFragment, fragmentTag).addToBackStack(fragmentTag).commit();
|
||||||
else{
|
else
|
||||||
fragmentManager.beginTransaction()
|
fragmentManager.beginTransaction().setCustomAnimations(R.anim.enter_from_left, R.anim.exit_to_right, R.anim.enter_from_right, R.anim.exit_to_left)
|
||||||
|
.replace(R.id.main_app_container, statusFragment, fragmentTag).addToBackStack(fragmentTag).commit();
|
||||||
|
}else{
|
||||||
|
if( currentAction == actionSwipe.LEFT_TO_RIGHT)
|
||||||
|
fragmentManager.beginTransaction().setCustomAnimations(R.anim.enter_from_right, R.anim.exit_to_left, R.anim.enter_from_left, R.anim.exit_to_right)
|
||||||
|
.replace(R.id.main_app_container, statusFragment, fragmentTag).commit();
|
||||||
|
else
|
||||||
|
fragmentManager.beginTransaction().setCustomAnimations(R.anim.enter_from_left, R.anim.exit_to_right, R.anim.enter_from_right, R.anim.exit_to_left)
|
||||||
.replace(R.id.main_app_container, statusFragment, fragmentTag).commit();
|
.replace(R.id.main_app_container, statusFragment, fragmentTag).commit();
|
||||||
first = false;
|
first = false;
|
||||||
}
|
}
|
||||||
|
@ -427,7 +446,12 @@ public class MainActivity extends AppCompatActivity
|
||||||
bundle.putSerializable("type", RetrieveFeedsAsyncTask.Type.LOCAL);
|
bundle.putSerializable("type", RetrieveFeedsAsyncTask.Type.LOCAL);
|
||||||
statusFragment.setArguments(bundle);
|
statusFragment.setArguments(bundle);
|
||||||
fragmentTag = "LOCAL_TIMELINE";
|
fragmentTag = "LOCAL_TIMELINE";
|
||||||
fragmentManager.beginTransaction()
|
currentScreen = 2;
|
||||||
|
if( currentAction == actionSwipe.LEFT_TO_RIGHT)
|
||||||
|
fragmentManager.beginTransaction().setCustomAnimations(R.anim.enter_from_right, R.anim.exit_to_left, R.anim.enter_from_left, R.anim.exit_to_right)
|
||||||
|
.replace(R.id.main_app_container, statusFragment, fragmentTag).addToBackStack(fragmentTag).commit();
|
||||||
|
else
|
||||||
|
fragmentManager.beginTransaction().setCustomAnimations(R.anim.enter_from_left, R.anim.exit_to_right, R.anim.enter_from_right, R.anim.exit_to_left)
|
||||||
.replace(R.id.main_app_container, statusFragment, fragmentTag).addToBackStack(fragmentTag).commit();
|
.replace(R.id.main_app_container, statusFragment, fragmentTag).addToBackStack(fragmentTag).commit();
|
||||||
|
|
||||||
} else if (id == R.id.nav_global) {
|
} else if (id == R.id.nav_global) {
|
||||||
|
@ -436,7 +460,12 @@ public class MainActivity extends AppCompatActivity
|
||||||
bundle.putSerializable("type", RetrieveFeedsAsyncTask.Type.PUBLIC);
|
bundle.putSerializable("type", RetrieveFeedsAsyncTask.Type.PUBLIC);
|
||||||
statusFragment.setArguments(bundle);
|
statusFragment.setArguments(bundle);
|
||||||
fragmentTag = "PUBLIC_TIMELINE";
|
fragmentTag = "PUBLIC_TIMELINE";
|
||||||
fragmentManager.beginTransaction()
|
currentScreen = 3;
|
||||||
|
if( currentAction == actionSwipe.LEFT_TO_RIGHT)
|
||||||
|
fragmentManager.beginTransaction().setCustomAnimations(R.anim.enter_from_right, R.anim.exit_to_left, R.anim.enter_from_left, R.anim.exit_to_right)
|
||||||
|
.replace(R.id.main_app_container, statusFragment, fragmentTag).addToBackStack(fragmentTag).commit();
|
||||||
|
else
|
||||||
|
fragmentManager.beginTransaction().setCustomAnimations(R.anim.enter_from_left, R.anim.exit_to_right, R.anim.enter_from_right, R.anim.exit_to_left)
|
||||||
.replace(R.id.main_app_container, statusFragment, fragmentTag).addToBackStack(fragmentTag).commit();
|
.replace(R.id.main_app_container, statusFragment, fragmentTag).addToBackStack(fragmentTag).commit();
|
||||||
} else if (id == R.id.nav_settings) {
|
} else if (id == R.id.nav_settings) {
|
||||||
toot.setVisibility(View.GONE);
|
toot.setVisibility(View.GONE);
|
||||||
|
@ -482,8 +511,6 @@ public class MainActivity extends AppCompatActivity
|
||||||
fragmentManager.beginTransaction()
|
fragmentManager.beginTransaction()
|
||||||
.replace(R.id.main_app_container, followRequestSentFragment, fragmentTag).addToBackStack(fragmentTag).commit();
|
.replace(R.id.main_app_container, followRequestSentFragment, fragmentTag).addToBackStack(fragmentTag).commit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
setTitle(item.getTitle());
|
setTitle(item.getTitle());
|
||||||
populateTitleWithTag(fragmentTag, item.getTitle().toString(), item.getItemId());
|
populateTitleWithTag(fragmentTag, item.getTitle().toString(), item.getItemId());
|
||||||
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
|
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
|
||||||
|
@ -523,4 +550,65 @@ public class MainActivity extends AppCompatActivity
|
||||||
updateHeaderAccountInfo(MainActivity.this, account, headerLayout, imageLoader, options);
|
updateHeaderAccountInfo(MainActivity.this, account, headerLayout, imageLoader, options);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean dispatchTouchEvent(MotionEvent event) {
|
||||||
|
//Default dispatchTouchEvent is returned when not in communication page
|
||||||
|
if( currentScreen >3 || currentScreen < 1)
|
||||||
|
return super.dispatchTouchEvent(event);
|
||||||
|
switch(event.getAction()){
|
||||||
|
case MotionEvent.ACTION_DOWN: {
|
||||||
|
downX = event.getX();
|
||||||
|
downY = event.getY();
|
||||||
|
return super.dispatchTouchEvent(event);
|
||||||
|
}
|
||||||
|
case MotionEvent.ACTION_UP: {
|
||||||
|
float upX = event.getX();
|
||||||
|
float upY = event.getY();
|
||||||
|
float deltaX = downX - upX;
|
||||||
|
float deltaY = downY - upY;
|
||||||
|
// swipe horizontal
|
||||||
|
if(Math.abs(deltaX) > MIN_DISTANCE && Math.abs(deltaY) < MIN_DISTANCE){
|
||||||
|
if(deltaX < 0) { switchOnSwipe(actionSwipe.LEFT_TO_RIGHT); return true; }
|
||||||
|
if(deltaX > 0) { switchOnSwipe(actionSwipe.RIGHT_TO_LEFT); return true; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return super.dispatchTouchEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void switchOnSwipe(actionSwipe action){
|
||||||
|
currentScreen = (action == actionSwipe.LEFT_TO_RIGHT)?currentScreen-1:currentScreen+1;
|
||||||
|
if( currentScreen > 3 )
|
||||||
|
currentScreen = 1;
|
||||||
|
if( currentScreen < 1)
|
||||||
|
currentScreen = 3;
|
||||||
|
currentAction = action;
|
||||||
|
final NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
|
||||||
|
switch (currentScreen){
|
||||||
|
case 1:
|
||||||
|
unCheckAllMenuItems(navigationView.getMenu());
|
||||||
|
navigationView.getMenu().performIdentifierAction(R.id.nav_home, 0);
|
||||||
|
if( navigationView.getMenu().findItem(R.id.nav_home) != null)
|
||||||
|
navigationView.getMenu().findItem(R.id.nav_home).setChecked(true);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
unCheckAllMenuItems(navigationView.getMenu());
|
||||||
|
navigationView.getMenu().performIdentifierAction(R.id.nav_local, 0);
|
||||||
|
if( navigationView.getMenu().findItem(R.id.nav_local) != null)
|
||||||
|
navigationView.getMenu().findItem(R.id.nav_local).setChecked(true);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
unCheckAllMenuItems(navigationView.getMenu());
|
||||||
|
navigationView.getMenu().performIdentifierAction(R.id.nav_global, 0);
|
||||||
|
if( navigationView.getMenu().findItem(R.id.nav_global) != null)
|
||||||
|
navigationView.getMenu().findItem(R.id.nav_global).setChecked(true);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -284,7 +284,7 @@ public class ShowAccountActivity extends AppCompatActivity implements OnPostActi
|
||||||
if( account != null){
|
if( account != null){
|
||||||
setTitle(account.getAcct());
|
setTitle(account.getAcct());
|
||||||
account_dn.setText(EmojiParser.parseToUnicode(account.getDisplay_name()));
|
account_dn.setText(EmojiParser.parseToUnicode(account.getDisplay_name()));
|
||||||
account_un.setText(account.getUsername());
|
account_un.setText(String.format("@%s", account.getUsername()));
|
||||||
if( account.getAcct() != null && account.getAcct().equals(account.getUsername()))
|
if( account.getAcct() != null && account.getAcct().equals(account.getUsername()))
|
||||||
account_ac.setVisibility(View.GONE);
|
account_ac.setVisibility(View.GONE);
|
||||||
else
|
else
|
||||||
|
|
|
@ -22,7 +22,6 @@ import android.graphics.Bitmap;
|
||||||
import android.graphics.BitmapFactory;
|
import android.graphics.BitmapFactory;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import com.evernote.android.job.Job;
|
import com.evernote.android.job.Job;
|
||||||
import com.evernote.android.job.JobManager;
|
import com.evernote.android.job.JobManager;
|
||||||
|
@ -62,8 +61,6 @@ import static fr.gouv.etalab.mastodon.helper.Helper.notify_user;
|
||||||
public class HomeTimelineSyncJob extends Job implements OnRetrieveHomeTimelineServiceInterface{
|
public class HomeTimelineSyncJob extends Job implements OnRetrieveHomeTimelineServiceInterface{
|
||||||
|
|
||||||
static final String HOME_TIMELINE = "home_timeline";
|
static final String HOME_TIMELINE = "home_timeline";
|
||||||
private int notificationId;
|
|
||||||
|
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
|
@ -115,8 +112,6 @@ public class HomeTimelineSyncJob extends Job implements OnRetrieveHomeTimelineSe
|
||||||
//Retrieve users in db that owner has.
|
//Retrieve users in db that owner has.
|
||||||
for (Account account: accounts) {
|
for (Account account: accounts) {
|
||||||
String since_id = sharedpreferences.getString(Helper.LAST_HOMETIMELINE_MAX_ID + account.getId(), null);
|
String since_id = sharedpreferences.getString(Helper.LAST_HOMETIMELINE_MAX_ID + account.getId(), null);
|
||||||
long notif_id = Long.parseLong(account.getId());
|
|
||||||
notificationId = ((notif_id + 2) > 2147483647 )?(int)(2147483647 - notif_id -2):(int)(notif_id + 2);
|
|
||||||
new RetrieveHomeTimelineServiceAsyncTask(getContext(), account.getInstance(), account.getToken(), since_id, account.getAcct(), account.getId(), HomeTimelineSyncJob.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
new RetrieveHomeTimelineServiceAsyncTask(getContext(), account.getInstance(), account.getToken(), since_id, account.getAcct(), account.getId(), HomeTimelineSyncJob.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -171,6 +166,8 @@ public class HomeTimelineSyncJob extends Job implements OnRetrieveHomeTimelineSe
|
||||||
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK );
|
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK );
|
||||||
intent.putExtra(INTENT_ACTION, HOME_TIMELINE_INTENT);
|
intent.putExtra(INTENT_ACTION, HOME_TIMELINE_INTENT);
|
||||||
intent.putExtra(PREF_KEY_ID, userId);
|
intent.putExtra(PREF_KEY_ID, userId);
|
||||||
|
long notif_id = Long.parseLong(userId);
|
||||||
|
int notificationId = ((notif_id + 2) > 2147483647) ? (int) (2147483647 - notif_id - 2) : (int) (notif_id + 2);
|
||||||
if( max_id != null)
|
if( max_id != null)
|
||||||
notify_user(getContext(), intent, notificationId, icon_notification,title,message);
|
notify_user(getContext(), intent, notificationId, icon_notification,title,message);
|
||||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||||
|
|
|
@ -22,21 +22,16 @@ import android.graphics.Bitmap;
|
||||||
import android.graphics.BitmapFactory;
|
import android.graphics.BitmapFactory;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import com.evernote.android.job.Job;
|
import com.evernote.android.job.Job;
|
||||||
import com.evernote.android.job.JobManager;
|
import com.evernote.android.job.JobManager;
|
||||||
import com.evernote.android.job.JobRequest;
|
import com.evernote.android.job.JobRequest;
|
||||||
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;
|
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;
|
||||||
import com.nostra13.universalimageloader.core.ImageLoader;
|
import com.nostra13.universalimageloader.core.ImageLoader;
|
||||||
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
|
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
|
||||||
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import fr.gouv.etalab.mastodon.activities.MainActivity;
|
import fr.gouv.etalab.mastodon.activities.MainActivity;
|
||||||
import fr.gouv.etalab.mastodon.client.APIResponse;
|
import fr.gouv.etalab.mastodon.client.APIResponse;
|
||||||
import fr.gouv.etalab.mastodon.client.PatchBaseImageDownloader;
|
import fr.gouv.etalab.mastodon.client.PatchBaseImageDownloader;
|
||||||
|
@ -63,7 +58,6 @@ import static fr.gouv.etalab.mastodon.helper.Helper.notify_user;
|
||||||
public class NotificationsSyncJob extends Job implements OnRetrieveNotificationsInterface{
|
public class NotificationsSyncJob extends Job implements OnRetrieveNotificationsInterface{
|
||||||
|
|
||||||
static final String NOTIFICATION_REFRESH = "job_notification";
|
static final String NOTIFICATION_REFRESH = "job_notification";
|
||||||
private int notificationId;
|
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
|
@ -121,8 +115,6 @@ public class NotificationsSyncJob extends Job implements OnRetrieveNotifications
|
||||||
//Retrieve users in db that owner has.
|
//Retrieve users in db that owner has.
|
||||||
for (Account account: accounts) {
|
for (Account account: accounts) {
|
||||||
String max_id = sharedpreferences.getString(Helper.LAST_NOTIFICATION_MAX_ID + account.getId(), null);
|
String max_id = sharedpreferences.getString(Helper.LAST_NOTIFICATION_MAX_ID + account.getId(), null);
|
||||||
long notif_id = Long.parseLong(account.getId());
|
|
||||||
notificationId = ((notif_id + 1) > 2147483647 )?(int)(2147483647 - notif_id - 1):(int)(notif_id + 1);
|
|
||||||
new RetrieveNotificationsAsyncTask(getContext(), account.getInstance(), account.getToken(), max_id, account.getAcct(), account.getId(), NotificationsSyncJob.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
new RetrieveNotificationsAsyncTask(getContext(), account.getInstance(), account.getToken(), max_id, account.getAcct(), account.getId(), NotificationsSyncJob.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -226,6 +218,8 @@ public class NotificationsSyncJob extends Job implements OnRetrieveNotifications
|
||||||
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK );
|
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK );
|
||||||
intent.putExtra(INTENT_ACTION, NOTIFICATION_INTENT);
|
intent.putExtra(INTENT_ACTION, NOTIFICATION_INTENT);
|
||||||
intent.putExtra(PREF_KEY_ID, userId);
|
intent.putExtra(PREF_KEY_ID, userId);
|
||||||
|
long notif_id = Long.parseLong(userId);
|
||||||
|
int notificationId = ((notif_id + 1) > 2147483647) ? (int) (2147483647 - notif_id - 1) : (int) (notif_id + 1);
|
||||||
if( max_id != null)
|
if( max_id != null)
|
||||||
notify_user(getContext(), intent, notificationId, icon_notification,title,message);
|
notify_user(getContext(), intent, notificationId, icon_notification,title,message);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shareInterpolator="false">
|
||||||
|
<translate
|
||||||
|
android:fromXDelta="-100%" android:toXDelta="0%"
|
||||||
|
android:fromYDelta="0%" android:toYDelta="0%"
|
||||||
|
android:duration="300"/>
|
||||||
|
</set>
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shareInterpolator="false">
|
||||||
|
<translate
|
||||||
|
android:fromXDelta="100%" android:toXDelta="0%"
|
||||||
|
android:fromYDelta="0%" android:toYDelta="0%"
|
||||||
|
android:duration="300" />
|
||||||
|
</set>
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shareInterpolator="false">
|
||||||
|
<translate
|
||||||
|
android:fromXDelta="0%" android:toXDelta="-100%"
|
||||||
|
android:fromYDelta="0%" android:toYDelta="0%"
|
||||||
|
android:duration="300"/>
|
||||||
|
</set>
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shareInterpolator="false">
|
||||||
|
<translate
|
||||||
|
android:fromXDelta="0%" android:toXDelta="100%"
|
||||||
|
android:fromYDelta="0%" android:toYDelta="0%"
|
||||||
|
android:duration="300" />
|
||||||
|
</set>
|
|
@ -44,6 +44,7 @@
|
||||||
</android.support.design.widget.AppBarLayout>
|
</android.support.design.widget.AppBarLayout>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Framelayout to display Fragments -->
|
<!-- Framelayout to display Fragments -->
|
||||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:id="@+id/main_app_container"
|
android:id="@+id/main_app_container"
|
||||||
|
|
|
@ -51,12 +51,14 @@
|
||||||
android:id="@+id/account_dn"
|
android:id="@+id/account_dn"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:maxLines="1"
|
||||||
android:textSize="18sp"
|
android:textSize="18sp"
|
||||||
android:textAppearance="@style/TextAppearance.AppCompat.Body1" />
|
android:textAppearance="@style/TextAppearance.AppCompat.Body1" />
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_marginLeft="10dp"
|
android:layout_marginLeft="10dp"
|
||||||
android:layout_marginStart="10dp"
|
android:layout_marginStart="10dp"
|
||||||
android:id="@+id/account_un"
|
android:id="@+id/account_un"
|
||||||
|
android:maxLines="1"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -69,12 +71,14 @@
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:textColor="@color/colorPrimary"
|
android:textColor="@color/colorPrimary"
|
||||||
android:text="@string/followed_by"
|
android:text="@string/followed_by"
|
||||||
|
android:maxLines="1"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content" />
|
android:layout_height="wrap_content" />
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_marginTop="5dp"
|
android:layout_marginTop="5dp"
|
||||||
android:id="@+id/account_ac"
|
android:id="@+id/account_ac"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
|
android:maxLines="1"
|
||||||
android:textSize="16sp"
|
android:textSize="16sp"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content" />
|
android:layout_height="wrap_content" />
|
||||||
|
@ -96,9 +100,8 @@
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_marginTop="5dp"
|
|
||||||
android:layout_marginBottom="5dp"
|
|
||||||
android:id="@+id/account_note"
|
android:id="@+id/account_note"
|
||||||
|
android:padding="5dp"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:maxLines="3"
|
android:maxLines="3"
|
||||||
|
@ -107,6 +110,7 @@
|
||||||
<android.support.design.widget.AppBarLayout
|
<android.support.design.widget.AppBarLayout
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:layout_marginTop="5dp"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:background="@android:color/white"
|
android:background="@android:color/white"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content">
|
||||||
|
|
|
@ -72,12 +72,14 @@
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/account_dn"
|
android:id="@+id/account_dn"
|
||||||
|
android:maxLines="1"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textSize="18sp"
|
android:textSize="18sp"
|
||||||
android:textAppearance="@style/TextAppearance.AppCompat.Body1" />
|
android:textAppearance="@style/TextAppearance.AppCompat.Body1" />
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/account_un"
|
android:id="@+id/account_un"
|
||||||
|
android:maxLines="1"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -88,6 +90,7 @@
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
android:id="@+id/account_ac"
|
android:id="@+id/account_ac"
|
||||||
android:textSize="16sp"
|
android:textSize="16sp"
|
||||||
|
android:maxLines="1"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content" />
|
android:layout_height="wrap_content" />
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
|
Loading…
Reference in New Issue