Commit 3fecce96 authored by DrKLO's avatar DrKLO

Implemented own ActionBar and Fragments, swipe back navigation,...

Implemented own ActionBar and Fragments, swipe back navigation, https://github.com/DrKLO/Telegram/issues/424
parent 644fc7cc
...@@ -82,7 +82,7 @@ android { ...@@ -82,7 +82,7 @@ android {
defaultConfig { defaultConfig {
minSdkVersion 8 minSdkVersion 8
targetSdkVersion 19 targetSdkVersion 19
versionCode 233 versionCode 234
versionName "1.4.14" versionName "1.4.15"
} }
} }
...@@ -95,19 +95,6 @@ ...@@ -95,19 +95,6 @@
<data android:mimeType="vnd.android.cursor.item/vnd.org.telegram.messenger.android.profile"/> <data android:mimeType="vnd.android.cursor.item/vnd.org.telegram.messenger.android.profile"/>
</intent-filter> </intent-filter>
</activity> </activity>
<activity
android:name="org.telegram.ui.LoginActivity"
android:windowSoftInputMode="adjustResize"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait">
</activity>
<activity
android:name="org.telegram.ui.CountrySelectActivity"
android:windowSoftInputMode="adjustResize"
android:theme="@style/Theme.TMessages"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait">
</activity>
<activity <activity
android:name="org.telegram.ui.IntroActivity" android:name="org.telegram.ui.IntroActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize" android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
......
...@@ -456,6 +456,19 @@ public class LocaleController { ...@@ -456,6 +456,19 @@ public class LocaleController {
} }
} }
public static String formatStringSimple(String string, Object... args) {
try {
if (getInstance().currentLocale != null) {
return String.format(getInstance().currentLocale, string, args);
} else {
return String.format(string, args);
}
} catch (Exception e) {
FileLog.e("tmessages", e);
return "LOC_ERR: " + string;
}
}
public void onDeviceConfigurationChange(Configuration newConfig) { public void onDeviceConfigurationChange(Configuration newConfig) {
if (changingConfiguration) { if (changingConfiguration) {
return; return;
......
...@@ -564,9 +564,11 @@ public class MessagesStorage { ...@@ -564,9 +564,11 @@ public class MessagesStorage {
} }
ids += uid; ids += uid;
} }
int totalCount = 0;
SQLiteCursor cursor = database.queryFinalized(String.format(Locale.US, "SELECT uid, read_state, out FROM messages WHERE mid IN(%s)", ids)); SQLiteCursor cursor = database.queryFinalized(String.format(Locale.US, "SELECT uid, read_state, out FROM messages WHERE mid IN(%s)", ids));
while (cursor.next()) { while (cursor.next()) {
int out = cursor.intValue(2); int out = cursor.intValue(2);
totalCount++;
if (out != 0) { if (out != 0) {
continue; continue;
} }
...@@ -588,6 +590,10 @@ public class MessagesStorage { ...@@ -588,6 +590,10 @@ public class MessagesStorage {
} }
cursor.dispose(); cursor.dispose();
if (totalCount != messages.size()) {
FileLog.e("tmessages", "messages read mismatch!");
}
cursor = database.queryFinalized(String.format(Locale.US, "SELECT did, unread_count FROM dialogs WHERE did IN(%s)", dialogsToReload)); cursor = database.queryFinalized(String.format(Locale.US, "SELECT did, unread_count FROM dialogs WHERE did IN(%s)", dialogsToReload));
while (cursor.next()) { while (cursor.next()) {
long did = cursor.longValue(0); long did = cursor.longValue(0);
......
...@@ -205,7 +205,7 @@ public class Utilities { ...@@ -205,7 +205,7 @@ public class Utilities {
} }
public static int dp(int value) { public static int dp(int value) {
return (int)(density * value); return (int)(Math.max(1, density * value));
} }
public static int dpf(float value) { public static int dpf(float value) {
......
...@@ -24,7 +24,6 @@ import android.graphics.Bitmap; ...@@ -24,7 +24,6 @@ import android.graphics.Bitmap;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.os.Handler; import android.os.Handler;
import android.os.PowerManager; import android.os.PowerManager;
import android.view.ViewConfiguration;
import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil; import com.google.android.gms.common.GooglePlayServicesUtil;
...@@ -41,10 +40,7 @@ import org.telegram.messenger.NativeLoader; ...@@ -41,10 +40,7 @@ import org.telegram.messenger.NativeLoader;
import org.telegram.messenger.ScreenReceiver; import org.telegram.messenger.ScreenReceiver;
import org.telegram.messenger.UserConfig; import org.telegram.messenger.UserConfig;
import org.telegram.messenger.Utilities; import org.telegram.messenger.Utilities;
import org.telegram.ui.Views.BaseFragment;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
...@@ -64,8 +60,6 @@ public class ApplicationLoader extends Application { ...@@ -64,8 +60,6 @@ public class ApplicationLoader extends Application {
private static volatile boolean applicationInited = false; private static volatile boolean applicationInited = false;
public static volatile boolean isScreenOn = false; public static volatile boolean isScreenOn = false;
public static ArrayList<BaseFragment> fragmentsStack = new ArrayList<BaseFragment>();
public static void postInitApplication() { public static void postInitApplication() {
if (applicationInited) { if (applicationInited) {
return; return;
...@@ -149,17 +143,6 @@ public class ApplicationLoader extends Application { ...@@ -149,17 +143,6 @@ public class ApplicationLoader extends Application {
java.lang.System.setProperty("java.net.preferIPv4Stack", "true"); java.lang.System.setProperty("java.net.preferIPv4Stack", "true");
java.lang.System.setProperty("java.net.preferIPv6Addresses", "false"); java.lang.System.setProperty("java.net.preferIPv6Addresses", "false");
try {
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
if(menuKeyField != null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
}
} catch (Exception e) {
e.printStackTrace();
}
startPushService(); startPushService();
} }
......
...@@ -30,7 +30,6 @@ import org.telegram.messenger.R; ...@@ -30,7 +30,6 @@ import org.telegram.messenger.R;
import org.telegram.messenger.Utilities; import org.telegram.messenger.Utilities;
import org.telegram.objects.MessageObject; import org.telegram.objects.MessageObject;
import org.telegram.ui.Views.ImageReceiver; import org.telegram.ui.Views.ImageReceiver;
import org.telegram.ui.Views.OnSwipeTouchListener;
import java.lang.ref.WeakReference; import java.lang.ref.WeakReference;
...@@ -41,8 +40,6 @@ public class ChatBaseCell extends BaseCell { ...@@ -41,8 +40,6 @@ public class ChatBaseCell extends BaseCell {
public abstract void didPressedCancelSendButton(ChatBaseCell cell); public abstract void didPressedCancelSendButton(ChatBaseCell cell);
public abstract void didLongPressed(ChatBaseCell cell); public abstract void didLongPressed(ChatBaseCell cell);
public abstract boolean canPerformActions(); public abstract boolean canPerformActions();
public boolean onSwipeLeft();
public boolean onSwipeRight();
} }
public boolean isChat = false; public boolean isChat = false;
...@@ -118,7 +115,6 @@ public class ChatBaseCell extends BaseCell { ...@@ -118,7 +115,6 @@ public class ChatBaseCell extends BaseCell {
private int pressCount = 0; private int pressCount = 0;
private CheckForLongPress pendingCheckForLongPress = null; private CheckForLongPress pendingCheckForLongPress = null;
private CheckForTap pendingCheckForTap = null; private CheckForTap pendingCheckForTap = null;
private OnSwipeTouchListener onSwipeTouchListener;
private final class CheckForTap implements Runnable { private final class CheckForTap implements Runnable {
public void run() { public void run() {
...@@ -153,23 +149,6 @@ public class ChatBaseCell extends BaseCell { ...@@ -153,23 +149,6 @@ public class ChatBaseCell extends BaseCell {
media = isMedia; media = isMedia;
avatarImage = new ImageReceiver(); avatarImage = new ImageReceiver();
avatarImage.parentView = new WeakReference<View>(this); avatarImage.parentView = new WeakReference<View>(this);
onSwipeTouchListener = new OnSwipeTouchListener() {
public void onSwipeRight() {
if (delegate != null && delegate.onSwipeRight()) {
MotionEvent event = MotionEvent.obtain(0, 0, MotionEvent.ACTION_CANCEL, 0, 0, 0);
onTouchEvent(event);
event.recycle();
}
}
public void onSwipeLeft() {
if (delegate != null && delegate.onSwipeLeft()) {
MotionEvent event = MotionEvent.obtain(0, 0, MotionEvent.ACTION_CANCEL, 0, 0, 0);
onTouchEvent(event);
event.recycle();
}
}
};
} }
@Override @Override
...@@ -384,10 +363,6 @@ public class ChatBaseCell extends BaseCell { ...@@ -384,10 +363,6 @@ public class ChatBaseCell extends BaseCell {
} }
} }
protected void checkSwipes(MotionEvent event) {
onSwipeTouchListener.onTouch(this, event);
}
@Override @Override
public boolean onTouchEvent(MotionEvent event) { public boolean onTouchEvent(MotionEvent event) {
boolean result = false; boolean result = false;
......
...@@ -135,7 +135,6 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD ...@@ -135,7 +135,6 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD
boolean result = false; boolean result = false;
int side = Utilities.dp(44); int side = Utilities.dp(44);
checkSwipes(event);
if (event.getAction() == MotionEvent.ACTION_DOWN) { if (event.getAction() == MotionEvent.ACTION_DOWN) {
if (delegate == null || delegate.canPerformActions()) { if (delegate == null || delegate.canPerformActions()) {
if (buttonState != -1 && x >= buttonX && x <= buttonX + side && y >= buttonY && y <= buttonY + side) { if (buttonState != -1 && x >= buttonX && x <= buttonX + side && y >= buttonY && y <= buttonY + side) {
......
...@@ -482,7 +482,7 @@ public class DialogCell extends BaseCell { ...@@ -482,7 +482,7 @@ public class DialogCell extends BaseCell {
messageString = Emoji.replaceEmoji(Html.fromHtml(String.format("<font color=#316f9f>%s:</font> <font color=#316f9f>%s</font>", name, message.messageText)), messagePaint.getFontMetricsInt(), Utilities.dp(20)); messageString = Emoji.replaceEmoji(Html.fromHtml(String.format("<font color=#316f9f>%s:</font> <font color=#316f9f>%s</font>", name, message.messageText)), messagePaint.getFontMetricsInt(), Utilities.dp(20));
} else { } else {
if (message.messageOwner.message != null) { if (message.messageOwner.message != null) {
messageString = Emoji.replaceEmoji(Html.fromHtml(String.format("<font color=#316f9f>%s:</font> <font color=#808080>%s</font>", name, message.messageOwner.message.replace("\n", " "))), messagePaint.getFontMetricsInt(), Utilities.dp(20)); messageString = Emoji.replaceEmoji(Html.fromHtml(String.format("<font color=#316f9f>%s:</font> <font color=#808080>%s</font>", name, message.messageOwner.message.replace("\n", " ").replace("<", "&lt;").replace(">", "&gt;"))), messagePaint.getFontMetricsInt(), Utilities.dp(20));
} }
} }
} else { } else {
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -11,13 +11,10 @@ package org.telegram.ui; ...@@ -11,13 +11,10 @@ package org.telegram.ui;
import android.app.Activity; import android.app.Activity;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.inputmethod.EditorInfo; import android.view.inputmethod.EditorInfo;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
...@@ -28,7 +25,7 @@ import org.telegram.messenger.TLRPC; ...@@ -28,7 +25,7 @@ import org.telegram.messenger.TLRPC;
import org.telegram.messenger.MessagesController; import org.telegram.messenger.MessagesController;
import org.telegram.messenger.R; import org.telegram.messenger.R;
import org.telegram.messenger.Utilities; import org.telegram.messenger.Utilities;
import org.telegram.ui.Views.BaseFragment; import org.telegram.ui.Views.ActionBar.BaseFragment;
public class ChatProfileChangeNameActivity extends BaseFragment { public class ChatProfileChangeNameActivity extends BaseFragment {
private EditText firstNameField; private EditText firstNameField;
...@@ -36,8 +33,8 @@ public class ChatProfileChangeNameActivity extends BaseFragment { ...@@ -36,8 +33,8 @@ public class ChatProfileChangeNameActivity extends BaseFragment {
private int chat_id; private int chat_id;
private View doneButton; private View doneButton;
public ChatProfileChangeNameActivity() { public ChatProfileChangeNameActivity(Bundle args) {
animationType = 1; super(args);
} }
@Override @Override
...@@ -48,18 +45,32 @@ public class ChatProfileChangeNameActivity extends BaseFragment { ...@@ -48,18 +45,32 @@ public class ChatProfileChangeNameActivity extends BaseFragment {
} }
@Override @Override
public void onFragmentDestroy() { public View createView(LayoutInflater inflater, ViewGroup container) {
super.onFragmentDestroy(); if (fragmentView == null) {
} actionBarLayer.setCustomView(R.layout.settings_do_action_layout);
Button cancelButton = (Button)actionBarLayer.findViewById(R.id.cancel_button);
cancelButton.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onClick(View view) {
super.onCreate(savedInstanceState); finishFragment();
} }
});
doneButton = actionBarLayer.findViewById(R.id.done_button);
doneButton.setOnClickListener(new View.OnClickListener() {
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { public void onClick(View view) {
if (fragmentView == null) { if (firstNameField.getText().length() != 0) {
saveName();
finishFragment();
}
}
});
cancelButton.setText(LocaleController.getString("Cancel", R.string.Cancel));
TextView textView = (TextView)doneButton.findViewById(R.id.done_button_text);
textView.setText(LocaleController.getString("Done", R.string.Done));
fragmentView = inflater.inflate(R.layout.chat_profile_change_name_layout, container, false); fragmentView = inflater.inflate(R.layout.chat_profile_change_name_layout, container, false);
TLRPC.Chat currentChat = MessagesController.getInstance().chats.get(chat_id); TLRPC.Chat currentChat = MessagesController.getInstance().chats.get(chat_id);
...@@ -90,54 +101,8 @@ public class ChatProfileChangeNameActivity extends BaseFragment { ...@@ -90,54 +101,8 @@ public class ChatProfileChangeNameActivity extends BaseFragment {
return fragmentView; return fragmentView;
} }
@Override
public boolean canApplyUpdateStatus() {
return false;
}
@Override
public void applySelfActionBar() {
if (parentActivity == null) {
return;
}
ActionBar actionBar = parentActivity.getSupportActionBar();
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setCustomView(R.layout.settings_do_action_layout);
Button cancelButton = (Button)actionBar.getCustomView().findViewById(R.id.cancel_button);
cancelButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finishFragment();
}
});
doneButton = actionBar.getCustomView().findViewById(R.id.done_button);
doneButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (firstNameField.getText().length() != 0) {
saveName();
finishFragment();
}
}
});
cancelButton.setText(LocaleController.getString("Cancel", R.string.Cancel));
TextView textView = (TextView)doneButton.findViewById(R.id.done_button_text);
textView.setText(LocaleController.getString("Done", R.string.Done));
}
@Override @Override
public void onResume() { public void onResume() {
super.onResume();
if (getActivity() == null) {
return;
}
((LaunchActivity)parentActivity).updateActionBar();
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("mainconfig", Activity.MODE_PRIVATE); SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("mainconfig", Activity.MODE_PRIVATE);
boolean animations = preferences.getBoolean("view_animations", true); boolean animations = preferences.getBoolean("view_animations", true);
if (!animations) { if (!animations) {
...@@ -147,32 +112,10 @@ public class ChatProfileChangeNameActivity extends BaseFragment { ...@@ -147,32 +112,10 @@ public class ChatProfileChangeNameActivity extends BaseFragment {
} }
@Override @Override
public Animation onCreateAnimation(int transit, boolean enter, int nextAnim) { public void onOpenAnimationEnd() {
if (nextAnim != 0) {
Animation anim = AnimationUtils.loadAnimation(getActivity(), nextAnim);
anim.setAnimationListener(new Animation.AnimationListener() {
public void onAnimationStart(Animation animation) {
ChatProfileChangeNameActivity.this.onAnimationStart();
}
public void onAnimationRepeat(Animation animation) {
}
public void onAnimationEnd(Animation animation) {
ChatProfileChangeNameActivity.this.onAnimationEnd();
firstNameField.requestFocus(); firstNameField.requestFocus();
Utilities.showKeyboard(firstNameField); Utilities.showKeyboard(firstNameField);
} }
});
return anim;
} else {
return super.onCreateAnimation(transit, enter, nextAnim);
}
}
private void saveName() { private void saveName() {
MessagesController.getInstance().changeChatTitle(chat_id, firstNameField.getText().toString()); MessagesController.getInstance().changeChatTitle(chat_id, firstNameField.getText().toString());
......
...@@ -12,29 +12,25 @@ import android.app.Activity; ...@@ -12,29 +12,25 @@ import android.app.Activity;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.graphics.Typeface; import android.graphics.Typeface;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.inputmethod.EditorInfo; import android.view.inputmethod.EditorInfo;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import android.widget.TextView; import android.widget.TextView;
import org.telegram.PhoneFormat.PhoneFormat; import org.telegram.PhoneFormat.PhoneFormat;
import org.telegram.messenger.ContactsController;
import org.telegram.messenger.LocaleController; import org.telegram.messenger.LocaleController;
import org.telegram.messenger.TLRPC; import org.telegram.messenger.TLRPC;
import org.telegram.messenger.ConnectionsManager;
import org.telegram.messenger.ContactsController;
import org.telegram.messenger.MessagesController; import org.telegram.messenger.MessagesController;
import org.telegram.messenger.NotificationCenter; import org.telegram.messenger.NotificationCenter;
import org.telegram.messenger.R; import org.telegram.messenger.R;
import org.telegram.messenger.Utilities; import org.telegram.messenger.Utilities;
import org.telegram.ui.Views.BackupImageView; import org.telegram.ui.Views.BackupImageView;
import org.telegram.ui.Views.BaseFragment; import org.telegram.ui.Views.ActionBar.BaseFragment;
public class ContactAddActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate { public class ContactAddActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate {
private int user_id; private int user_id;
...@@ -46,14 +42,17 @@ public class ContactAddActivity extends BaseFragment implements NotificationCent ...@@ -46,14 +42,17 @@ public class ContactAddActivity extends BaseFragment implements NotificationCent
private TextView onlineText; private TextView onlineText;
private TextView phoneText; private TextView phoneText;
public ContactAddActivity(Bundle args) {
super(args);
}
@Override @Override
public boolean onFragmentCreate() { public boolean onFragmentCreate() {
super.onFragmentCreate();
NotificationCenter.getInstance().addObserver(this, MessagesController.updateInterfaces); NotificationCenter.getInstance().addObserver(this, MessagesController.updateInterfaces);
user_id = getArguments().getInt("user_id", 0); user_id = getArguments().getInt("user_id", 0);
phone = getArguments().getString("phone"); phone = getArguments().getString("phone");
TLRPC.User user = MessagesController.getInstance().users.get(user_id); TLRPC.User user = MessagesController.getInstance().users.get(user_id);
return user != null; return user != null && super.onFragmentCreate();
} }
@Override @Override
...@@ -63,8 +62,35 @@ public class ContactAddActivity extends BaseFragment implements NotificationCent ...@@ -63,8 +62,35 @@ public class ContactAddActivity extends BaseFragment implements NotificationCent
} }
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { public View createView(LayoutInflater inflater, ViewGroup container) {
if (fragmentView == null) { if (fragmentView == null) {
actionBarLayer.setCustomView(R.layout.settings_do_action_layout);
Button cancelButton = (Button)actionBarLayer.findViewById(R.id.cancel_button);
cancelButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finishFragment();
}
});
doneButton = actionBarLayer.findViewById(R.id.done_button);
doneButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (firstNameField.getText().length() != 0) {
TLRPC.User user = MessagesController.getInstance().users.get(user_id);
user.first_name = firstNameField.getText().toString();
user.last_name = lastNameField.getText().toString();
ContactsController.getInstance().addContact(user);
finishFragment();
NotificationCenter.getInstance().postNotificationName(MessagesController.updateInterfaces, MessagesController.UPDATE_MASK_NAME);
}
}
});
cancelButton.setText(LocaleController.getString("Cancel", R.string.Cancel));
TextView textView = (TextView)doneButton.findViewById(R.id.done_button_text);
textView.setText(LocaleController.getString("Done", R.string.Done));
fragmentView = inflater.inflate(R.layout.contact_add_layout, container, false); fragmentView = inflater.inflate(R.layout.contact_add_layout, container, false);
TLRPC.User user = MessagesController.getInstance().users.get(user_id); TLRPC.User user = MessagesController.getInstance().users.get(user_id);
...@@ -149,68 +175,8 @@ public class ContactAddActivity extends BaseFragment implements NotificationCent ...@@ -149,68 +175,8 @@ public class ContactAddActivity extends BaseFragment implements NotificationCent
} }
} }
@Override
public boolean canApplyUpdateStatus() {
return false;
}
@Override
public void applySelfActionBar() {
if (parentActivity == null) {
return;
}
ActionBar actionBar = parentActivity.getSupportActionBar();
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
TextView title = (TextView)parentActivity.findViewById(R.id.action_bar_title);
if (title == null) {
final int subtitleId = parentActivity.getResources().getIdentifier("action_bar_title", "id", "android");
title = (TextView)parentActivity.findViewById(subtitleId);
}
if (title != null) {
title.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
title.setCompoundDrawablePadding(0);
}
actionBar.setCustomView(R.layout.settings_do_action_layout);
Button cancelButton = (Button)actionBar.getCustomView().findViewById(R.id.cancel_button);
cancelButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finishFragment();
}
});
doneButton = actionBar.getCustomView().findViewById(R.id.done_button);
doneButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (firstNameField.getText().length() != 0) {
TLRPC.User user = MessagesController.getInstance().users.get(user_id);
user.first_name = firstNameField.getText().toString();
user.last_name = lastNameField.getText().toString();
ContactsController.getInstance().addContact(user);
finishFragment();
NotificationCenter.getInstance().postNotificationName(MessagesController.updateInterfaces, MessagesController.UPDATE_MASK_NAME);
}
}
});
cancelButton.setText(LocaleController.getString("Cancel", R.string.Cancel));
TextView textView = (TextView)doneButton.findViewById(R.id.done_button_text);
textView.setText(LocaleController.getString("Done", R.string.Done));
}
@Override @Override
public void onResume() { public void onResume() {
super.onResume();
if (getActivity() == null) {
return;
}
((LaunchActivity)parentActivity).updateActionBar();
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("mainconfig", Activity.MODE_PRIVATE); SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("mainconfig", Activity.MODE_PRIVATE);
boolean animations = preferences.getBoolean("view_animations", true); boolean animations = preferences.getBoolean("view_animations", true);
if (!animations) { if (!animations) {
...@@ -220,30 +186,8 @@ public class ContactAddActivity extends BaseFragment implements NotificationCent ...@@ -220,30 +186,8 @@ public class ContactAddActivity extends BaseFragment implements NotificationCent
} }
@Override @Override
public Animation onCreateAnimation(int transit, boolean enter, int nextAnim) { public void onOpenAnimationEnd() {
if (nextAnim != 0) {
Animation anim = AnimationUtils.loadAnimation(getActivity(), nextAnim);
anim.setAnimationListener(new Animation.AnimationListener() {
public void onAnimationStart(Animation animation) {
ContactAddActivity.this.onAnimationStart();
}
public void onAnimationRepeat(Animation animation) {
}
public void onAnimationEnd(Animation animation) {
ContactAddActivity.this.onAnimationEnd();
firstNameField.requestFocus(); firstNameField.requestFocus();
Utilities.showKeyboard(firstNameField); Utilities.showKeyboard(firstNameField);
} }
});
return anim;
} else {
return super.onCreateAnimation(transit, enter, nextAnim);
}
}
} }
...@@ -10,10 +10,8 @@ package org.telegram.ui; ...@@ -10,10 +10,8 @@ package org.telegram.ui;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.text.Html; import android.text.Html;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.Surface; import android.view.Surface;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
...@@ -27,12 +25,17 @@ import org.telegram.messenger.TLRPC; ...@@ -27,12 +25,17 @@ import org.telegram.messenger.TLRPC;
import org.telegram.messenger.MessagesController; import org.telegram.messenger.MessagesController;
import org.telegram.messenger.R; import org.telegram.messenger.R;
import org.telegram.messenger.Utilities; import org.telegram.messenger.Utilities;
import org.telegram.ui.Views.BaseFragment; import org.telegram.ui.Views.ActionBar.ActionBarLayer;
import org.telegram.ui.Views.ActionBar.BaseFragment;
import org.telegram.ui.Views.IdenticonView; import org.telegram.ui.Views.IdenticonView;
public class IdenticonActivity extends BaseFragment { public class IdenticonActivity extends BaseFragment {
private int chat_id; private int chat_id;
public IdenticonActivity(Bundle args) {
super(args);
}
@Override @Override
public boolean onFragmentCreate() { public boolean onFragmentCreate() {
chat_id = getArguments().getInt("chat_id"); chat_id = getArguments().getInt("chat_id");
...@@ -40,19 +43,21 @@ public class IdenticonActivity extends BaseFragment { ...@@ -40,19 +43,21 @@ public class IdenticonActivity extends BaseFragment {
} }
@Override @Override
public void onFragmentDestroy() { public View createView(LayoutInflater inflater, ViewGroup container) {
super.onFragmentDestroy(); if (fragmentView == null) {
} actionBarLayer.setDisplayHomeAsUpEnabled(true);
actionBarLayer.setTitle(LocaleController.getString("EncryptionKey", R.string.EncryptionKey));
actionBarLayer.setTitleIcon(R.drawable.ic_lock_white, Utilities.dp(4));
actionBarLayer.setActionBarMenuOnItemClick(new ActionBarLayer.ActionBarMenuOnItemClick() {
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onItemClick(int id) {
super.onCreate(savedInstanceState); if (id == -1) {
setHasOptionsMenu(true); finishFragment();
}
} }
});
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (fragmentView == null) {
fragmentView = inflater.inflate(R.layout.identicon_layout, container, false); fragmentView = inflater.inflate(R.layout.identicon_layout, container, false);
IdenticonView identiconView = (IdenticonView) fragmentView.findViewById(R.id.identicon_view); IdenticonView identiconView = (IdenticonView) fragmentView.findViewById(R.id.identicon_view);
TextView textView = (TextView)fragmentView.findViewById(R.id.identicon_text); TextView textView = (TextView)fragmentView.findViewById(R.id.identicon_text);
...@@ -71,32 +76,6 @@ public class IdenticonActivity extends BaseFragment { ...@@ -71,32 +76,6 @@ public class IdenticonActivity extends BaseFragment {
return fragmentView; return fragmentView;
} }
@Override
public void applySelfActionBar() {
if (parentActivity == null) {
return;
}
ActionBar actionBar = parentActivity.getSupportActionBar();
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayUseLogoEnabled(false);
actionBar.setDisplayShowCustomEnabled(false);
actionBar.setSubtitle(null);
actionBar.setCustomView(null);
actionBar.setTitle(LocaleController.getString("EncryptionKey", R.string.EncryptionKey));
TextView title = (TextView)parentActivity.findViewById(R.id.action_bar_title);
if (title == null) {
final int subtitleId = parentActivity.getResources().getIdentifier("action_bar_title", "id", "android");
title = (TextView)parentActivity.findViewById(subtitleId);
}
if (title != null) {
title.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_lock_white, 0, 0, 0);
title.setCompoundDrawablePadding(Utilities.dp(4));
}
}
@Override @Override
public void onConfigurationChanged(android.content.res.Configuration newConfig) { public void onConfigurationChanged(android.content.res.Configuration newConfig) {
super.onConfigurationChanged(newConfig); super.onConfigurationChanged(newConfig);
...@@ -105,27 +84,16 @@ public class IdenticonActivity extends BaseFragment { ...@@ -105,27 +84,16 @@ public class IdenticonActivity extends BaseFragment {
@Override @Override
public void onResume() { public void onResume() {
super.onResume();
if (isFinish) {
return;
}
if (getActivity() == null) {
return;
}
((LaunchActivity)parentActivity).showActionBar();
((LaunchActivity)parentActivity).updateActionBar();
fixLayout(); fixLayout();
} }
private void fixLayout() { private void fixLayout() {
final View v = getView(); ViewTreeObserver obs = fragmentView.getViewTreeObserver();
if (v != null) {
ViewTreeObserver obs = v.getViewTreeObserver();
obs.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { obs.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override @Override
public boolean onPreDraw() { public boolean onPreDraw() {
LinearLayout layout = (LinearLayout)fragmentView; LinearLayout layout = (LinearLayout)fragmentView;
WindowManager manager = (WindowManager)parentActivity.getSystemService(Context.WINDOW_SERVICE); WindowManager manager = (WindowManager)ApplicationLoader.applicationContext.getSystemService(Context.WINDOW_SERVICE);
int rotation = manager.getDefaultDisplay().getRotation(); int rotation = manager.getDefaultDisplay().getRotation();
if (rotation == Surface.ROTATION_270 || rotation == Surface.ROTATION_90) { if (rotation == Surface.ROTATION_270 || rotation == Surface.ROTATION_90) {
...@@ -134,33 +102,11 @@ public class IdenticonActivity extends BaseFragment { ...@@ -134,33 +102,11 @@ public class IdenticonActivity extends BaseFragment {
layout.setOrientation(LinearLayout.VERTICAL); layout.setOrientation(LinearLayout.VERTICAL);
} }
v.setPadding(v.getPaddingLeft(), 0, v.getPaddingRight(), v.getPaddingBottom()); fragmentView.setPadding(fragmentView.getPaddingLeft(), 0, fragmentView.getPaddingRight(), fragmentView.getPaddingBottom());
v.getViewTreeObserver().removeOnPreDrawListener(this); fragmentView.getViewTreeObserver().removeOnPreDrawListener(this);
TextView title = (TextView)parentActivity.findViewById(R.id.action_bar_title);
if (title == null) {
final int subtitleId = ApplicationLoader.applicationContext.getResources().getIdentifier("action_bar_title", "id", "android");
title = (TextView)parentActivity.findViewById(subtitleId);
}
if (title != null) {
title.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_lock_white, 0, 0, 0);
title.setCompoundDrawablePadding(Utilities.dp(4));
}
return false; return false;
} }
}); });
} }
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
switch (itemId) {
case android.R.id.home:
finishFragment();
break;
}
return true;
}
} }
...@@ -194,7 +194,8 @@ public class IntroActivity extends ActionBarActivity { ...@@ -194,7 +194,8 @@ public class IntroActivity extends ActionBarActivity {
return; return;
} }
startPressed = true; startPressed = true;
Intent intent2 = new Intent(IntroActivity.this, LoginActivity.class); Intent intent2 = new Intent(IntroActivity.this, LaunchActivity.class);
intent2.putExtra("fromIntro", true);
startActivity(intent2); startActivity(intent2);
finish(); finish();
} }
......
...@@ -9,9 +9,7 @@ ...@@ -9,9 +9,7 @@
package org.telegram.ui; package org.telegram.ui;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
import android.text.Editable; import android.text.Editable;
import android.text.TextWatcher; import android.text.TextWatcher;
...@@ -33,6 +31,7 @@ import org.telegram.messenger.FileLog; ...@@ -33,6 +31,7 @@ import org.telegram.messenger.FileLog;
import org.telegram.messenger.R; import org.telegram.messenger.R;
import org.telegram.messenger.RPCRequest; import org.telegram.messenger.RPCRequest;
import org.telegram.messenger.Utilities; import org.telegram.messenger.Utilities;
import org.telegram.ui.Views.ActionBar.BaseFragment;
import org.telegram.ui.Views.SlideView; import org.telegram.ui.Views.SlideView;
import java.io.BufferedReader; import java.io.BufferedReader;
...@@ -82,9 +81,16 @@ public class LoginActivityPhoneView extends SlideView implements AdapterView.OnI ...@@ -82,9 +81,16 @@ public class LoginActivityPhoneView extends SlideView implements AdapterView.OnI
countryButton.setOnClickListener(new OnClickListener() { countryButton.setOnClickListener(new OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
ActionBarActivity activity = (ActionBarActivity)delegate; BaseFragment activity = (BaseFragment)delegate;
Intent intent = new Intent(activity, CountrySelectActivity.class); CountrySelectActivity fragment = new CountrySelectActivity();
activity.startActivityForResult(intent, 1); fragment.setCountrySelectActivityDelegate(new CountrySelectActivity.CountrySelectActivityDelegate() {
@Override
public void didSelectCountry(String name) {
selectCountry(name);
phoneField.requestFocus();
}
});
activity.presentFragment(fragment);
} }
}); });
......
...@@ -13,9 +13,7 @@ import android.content.Context; ...@@ -13,9 +13,7 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.Surface; import android.view.Surface;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
...@@ -34,9 +32,9 @@ import org.telegram.objects.MessageObject; ...@@ -34,9 +32,9 @@ import org.telegram.objects.MessageObject;
import org.telegram.messenger.MessagesController; import org.telegram.messenger.MessagesController;
import org.telegram.messenger.NotificationCenter; import org.telegram.messenger.NotificationCenter;
import org.telegram.messenger.R; import org.telegram.messenger.R;
import org.telegram.ui.Views.ActionBar.ActionBarLayer;
import org.telegram.ui.Views.BackupImageView; import org.telegram.ui.Views.BackupImageView;
import org.telegram.ui.Views.BaseFragment; import org.telegram.ui.Views.ActionBar.BaseFragment;
import org.telegram.ui.Views.OnSwipeTouchListener;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
...@@ -57,6 +55,10 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No ...@@ -57,6 +55,10 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No
private View progressView; private View progressView;
private TextView emptyView; private TextView emptyView;
public MediaActivity(Bundle args) {
super(args);
}
@Override @Override
public boolean onFragmentCreate() { public boolean onFragmentCreate() {
super.onFragmentCreate(); super.onFragmentCreate();
...@@ -83,14 +85,24 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No ...@@ -83,14 +85,24 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No
} }
@Override @Override
public void onCreate(Bundle savedInstanceState) { public View createView(LayoutInflater inflater, ViewGroup container) {
super.onCreate(savedInstanceState); if (fragmentView == null) {
setHasOptionsMenu(true); actionBarLayer.setDisplayHomeAsUpEnabled(true);
actionBarLayer.setTitle(LocaleController.getString("SharedMedia", R.string.SharedMedia));
actionBarLayer.setActionBarMenuOnItemClick(new ActionBarLayer.ActionBarMenuOnItemClick() {
@Override
public void onItemClick(int id) {
if (id == -1) {
if (Build.VERSION.SDK_INT < 11) {
listView.setAdapter(null);
listView = null;
listAdapter = null;
}
finishFragment();
}
} }
});
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (fragmentView == null) {
fragmentView = inflater.inflate(R.layout.media_layout, container, false); fragmentView = inflater.inflate(R.layout.media_layout, container, false);
emptyView = (TextView)fragmentView.findViewById(R.id.searchEmptyView); emptyView = (TextView)fragmentView.findViewById(R.id.searchEmptyView);
...@@ -98,14 +110,14 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No ...@@ -98,14 +110,14 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No
listView = (GridView)fragmentView.findViewById(R.id.media_grid); listView = (GridView)fragmentView.findViewById(R.id.media_grid);
progressView = fragmentView.findViewById(R.id.progressLayout); progressView = fragmentView.findViewById(R.id.progressLayout);
listView.setAdapter(listAdapter = new ListAdapter(parentActivity)); listView.setAdapter(listAdapter = new ListAdapter(getParentActivity()));
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override @Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
NotificationCenter.getInstance().addToMemCache(54, messages); NotificationCenter.getInstance().addToMemCache(54, messages);
NotificationCenter.getInstance().addToMemCache(55, i); NotificationCenter.getInstance().addToMemCache(55, i);
Intent intent = new Intent(parentActivity, GalleryImageViewer.class); Intent intent = new Intent(getParentActivity(), GalleryImageViewer.class);
startActivity(intent); getParentActivity().startActivity(intent);
} }
}); });
if (loading && messages.isEmpty()) { if (loading && messages.isEmpty()) {
...@@ -130,17 +142,6 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No ...@@ -130,17 +142,6 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No
} }
} }
}); });
listView.setOnTouchListener(new OnSwipeTouchListener() {
public void onSwipeRight() {
finishFragment(true);
}
});
emptyView.setOnTouchListener(new OnSwipeTouchListener() {
public void onSwipeRight() {
finishFragment(true);
}
});
} else { } else {
ViewGroup parent = (ViewGroup)fragmentView.getParent(); ViewGroup parent = (ViewGroup)fragmentView.getParent();
if (parent != null) { if (parent != null) {
...@@ -250,44 +251,11 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No ...@@ -250,44 +251,11 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No
} }
} }
@Override
public void applySelfActionBar() {
if (parentActivity == null) {
return;
}
ActionBar actionBar = parentActivity.getSupportActionBar();
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayUseLogoEnabled(false);
actionBar.setDisplayShowCustomEnabled(false);
actionBar.setCustomView(null);
actionBar.setTitle(LocaleController.getString("SharedMedia", R.string.SharedMedia));
actionBar.setSubtitle(null);
TextView title = (TextView)parentActivity.findViewById(R.id.action_bar_title);
if (title == null) {
final int subtitleId = parentActivity.getResources().getIdentifier("action_bar_title", "id", "android");
title = (TextView)parentActivity.findViewById(subtitleId);
}
if (title != null) {
title.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
title.setCompoundDrawablePadding(0);
}
}
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); if (listAdapter != null) {
if (getActivity() == null) {
return;
}
if (!firstStart && listAdapter != null) {
listAdapter.notifyDataSetChanged(); listAdapter.notifyDataSetChanged();
} }
firstStart = false;
((LaunchActivity)parentActivity).showActionBar();
((LaunchActivity)parentActivity).updateActionBar();
fixLayout(); fixLayout();
} }
...@@ -303,24 +271,23 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No ...@@ -303,24 +271,23 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No
obs.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { obs.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override @Override
public boolean onPreDraw() { public boolean onPreDraw() {
if (parentActivity != null) { WindowManager manager = (WindowManager)ApplicationLoader.applicationContext.getSystemService(Activity.WINDOW_SERVICE);
WindowManager manager = (WindowManager)parentActivity.getSystemService(Activity.WINDOW_SERVICE);
int rotation = manager.getDefaultDisplay().getRotation(); int rotation = manager.getDefaultDisplay().getRotation();
if (rotation == Surface.ROTATION_270 || rotation == Surface.ROTATION_90) { if (rotation == Surface.ROTATION_270 || rotation == Surface.ROTATION_90) {
orientation = 1; orientation = 1;
listView.setNumColumns(6); listView.setNumColumns(6);
itemWidth = getResources().getDisplayMetrics().widthPixels / 6 - Utilities.dp(2) * 5; itemWidth = getParentActivity().getResources().getDisplayMetrics().widthPixels / 6 - Utilities.dp(2) * 5;
listView.setColumnWidth(itemWidth); listView.setColumnWidth(itemWidth);
} else { } else {
orientation = 0; orientation = 0;
listView.setNumColumns(4); listView.setNumColumns(4);
itemWidth = getResources().getDisplayMetrics().widthPixels / 4 - Utilities.dp(2) * 3; itemWidth = getParentActivity().getResources().getDisplayMetrics().widthPixels / 4 - Utilities.dp(2) * 3;
listView.setColumnWidth(itemWidth); listView.setColumnWidth(itemWidth);
} }
listView.setPadding(listView.getPaddingLeft(), Utilities.dp(4), listView.getPaddingRight(), listView.getPaddingBottom()); listView.setPadding(listView.getPaddingLeft(), Utilities.dp(4), listView.getPaddingRight(), listView.getPaddingBottom());
listAdapter.notifyDataSetChanged(); listAdapter.notifyDataSetChanged();
}
if (listView != null) { if (listView != null) {
listView.getViewTreeObserver().removeOnPreDrawListener(this); listView.getViewTreeObserver().removeOnPreDrawListener(this);
} }
...@@ -331,22 +298,6 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No ...@@ -331,22 +298,6 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No
} }
} }
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
switch (itemId) {
case android.R.id.home:
if (Build.VERSION.SDK_INT < 11) {
listView.setAdapter(null);
listView = null;
listAdapter = null;
}
finishFragment();
break;
}
return true;
}
private class ListAdapter extends BaseAdapter { private class ListAdapter extends BaseAdapter {
private Context mContext; private Context mContext;
...@@ -403,13 +354,6 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No ...@@ -403,13 +354,6 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No
if (message.messageOwner.media != null && message.messageOwner.media.photo != null && !message.messageOwner.media.photo.sizes.isEmpty()) { if (message.messageOwner.media != null && message.messageOwner.media.photo != null && !message.messageOwner.media.photo.sizes.isEmpty()) {
ArrayList<TLRPC.PhotoSize> sizes = message.messageOwner.media.photo.sizes; ArrayList<TLRPC.PhotoSize> sizes = message.messageOwner.media.photo.sizes;
boolean set = false; boolean set = false;
// for (TLRPC.PhotoSize size : sizes) {
// if (size.type != null && size.type.equals("m")) {
// set = true;
// imageView.setImage(size.location, null, R.drawable.photo_placeholder);
// break;
// }
// }
if (!set) { if (!set) {
if (message.imagePreview != null) { if (message.imagePreview != null) {
imageView.setImageBitmap(message.imagePreview); imageView.setImageBitmap(message.imagePreview);
......
...@@ -16,7 +16,6 @@ import android.graphics.Point; ...@@ -16,7 +16,6 @@ import android.graphics.Point;
import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.BitmapDrawable;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.Display; import android.view.Display;
import android.view.LayoutInflater; import android.view.LayoutInflater;
...@@ -33,7 +32,7 @@ import org.telegram.messenger.FileLog; ...@@ -33,7 +32,7 @@ import org.telegram.messenger.FileLog;
import org.telegram.messenger.LocaleController; import org.telegram.messenger.LocaleController;
import org.telegram.messenger.R; import org.telegram.messenger.R;
import org.telegram.messenger.Utilities; import org.telegram.messenger.Utilities;
import org.telegram.ui.Views.BaseFragment; import org.telegram.ui.Views.ActionBar.BaseFragment;
import java.io.File; import java.io.File;
...@@ -278,14 +277,17 @@ public class PhotoCropActivity extends BaseFragment { ...@@ -278,14 +277,17 @@ public class PhotoCropActivity extends BaseFragment {
private Bitmap imageToCrop; private Bitmap imageToCrop;
private BitmapDrawable drawable; private BitmapDrawable drawable;
public PhotoCropActivityDelegate delegate = null; private PhotoCropActivityDelegate delegate = null;
private PhotoCropView view; private PhotoCropView view;
private boolean sameBitmap = false; private boolean sameBitmap = false;
private boolean doneButtonPressed = false; private boolean doneButtonPressed = false;
public PhotoCropActivity(Bundle args) {
super(args);
}
@Override @Override
public boolean onFragmentCreate() { public boolean onFragmentCreate() {
super.onFragmentCreate();
String photoPath = getArguments().getString("photoPath"); String photoPath = getArguments().getString("photoPath");
Uri photoUri = getArguments().getParcelable("photoUri"); Uri photoUri = getArguments().getParcelable("photoUri");
if (photoPath == null && photoUri == null) { if (photoPath == null && photoUri == null) {
...@@ -310,6 +312,7 @@ public class PhotoCropActivity extends BaseFragment { ...@@ -310,6 +312,7 @@ public class PhotoCropActivity extends BaseFragment {
return false; return false;
} }
drawable = new BitmapDrawable(imageToCrop); drawable = new BitmapDrawable(imageToCrop);
super.onFragmentCreate();
return true; return true;
} }
...@@ -324,49 +327,17 @@ public class PhotoCropActivity extends BaseFragment { ...@@ -324,49 +327,17 @@ public class PhotoCropActivity extends BaseFragment {
} }
@Override @Override
public void onCreate(Bundle savedInstanceState) { public View createView(LayoutInflater inflater, ViewGroup container) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (fragmentView == null) { if (fragmentView == null) {
fragmentView = view = new PhotoCropView(this.getActivity()); actionBarLayer.setCustomView(R.layout.settings_do_action_layout);
fragmentView.setLayoutParams(new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT)); Button cancelButton = (Button)actionBarLayer.findViewById(R.id.cancel_button);
} else {
ViewGroup parent = (ViewGroup)fragmentView.getParent();
if (parent != null) {
parent.removeView(fragmentView);
}
}
return fragmentView;
}
@Override
public boolean canApplyUpdateStatus() {
return false;
}
@Override
public void applySelfActionBar() {
if (parentActivity == null) {
return;
}
ActionBar actionBar = parentActivity.getSupportActionBar();
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setCustomView(R.layout.settings_do_action_layout);
Button cancelButton = (Button)actionBar.getCustomView().findViewById(R.id.cancel_button);
cancelButton.setOnClickListener(new View.OnClickListener() { cancelButton.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
finishFragment(); finishFragment();
} }
}); });
View doneButton = actionBar.getCustomView().findViewById(R.id.done_button); View doneButton = actionBarLayer.findViewById(R.id.done_button);
doneButton.setOnClickListener(new View.OnClickListener() { doneButton.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
...@@ -385,14 +356,19 @@ public class PhotoCropActivity extends BaseFragment { ...@@ -385,14 +356,19 @@ public class PhotoCropActivity extends BaseFragment {
cancelButton.setText(LocaleController.getString("Cancel", R.string.Cancel)); cancelButton.setText(LocaleController.getString("Cancel", R.string.Cancel));
TextView textView = (TextView)doneButton.findViewById(R.id.done_button_text); TextView textView = (TextView)doneButton.findViewById(R.id.done_button_text);
textView.setText(LocaleController.getString("Done", R.string.Done)); textView.setText(LocaleController.getString("Done", R.string.Done));
}
@Override fragmentView = view = new PhotoCropView(getParentActivity());
public void onResume() { fragmentView.setLayoutParams(new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT));
super.onResume(); } else {
if (getActivity() == null) { ViewGroup parent = (ViewGroup)fragmentView.getParent();
return; if (parent != null) {
parent.removeView(fragmentView);
} }
((LaunchActivity)parentActivity).updateActionBar(); }
return fragmentView;
}
public void setDelegate(PhotoCropActivityDelegate delegate) {
this.delegate = delegate;
} }
} }
...@@ -10,14 +10,10 @@ package org.telegram.ui; ...@@ -10,14 +10,10 @@ package org.telegram.ui;
import android.app.Activity; import android.app.Activity;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.inputmethod.EditorInfo; import android.view.inputmethod.EditorInfo;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
...@@ -33,7 +29,7 @@ import org.telegram.messenger.R; ...@@ -33,7 +29,7 @@ import org.telegram.messenger.R;
import org.telegram.messenger.RPCRequest; import org.telegram.messenger.RPCRequest;
import org.telegram.messenger.UserConfig; import org.telegram.messenger.UserConfig;
import org.telegram.messenger.Utilities; import org.telegram.messenger.Utilities;
import org.telegram.ui.Views.BaseFragment; import org.telegram.ui.Views.ActionBar.BaseFragment;
public class SettingsChangeNameActivity extends BaseFragment { public class SettingsChangeNameActivity extends BaseFragment {
private EditText firstNameField; private EditText firstNameField;
...@@ -41,37 +37,18 @@ public class SettingsChangeNameActivity extends BaseFragment { ...@@ -41,37 +37,18 @@ public class SettingsChangeNameActivity extends BaseFragment {
private View headerLabelView; private View headerLabelView;
private View doneButton; private View doneButton;
public SettingsChangeNameActivity() {
animationType = 1;
}
@Override @Override
public boolean canApplyUpdateStatus() { public View createView(LayoutInflater inflater, ViewGroup container) {
return false; if (fragmentView == null) {
} actionBarLayer.setCustomView(R.layout.settings_do_action_layout);
Button cancelButton = (Button)actionBarLayer.findViewById(R.id.cancel_button);
@Override
public void onResume() {
super.onResume();
if (isFinish) {
return;
}
ActionBar actionBar = parentActivity.getSupportActionBar();
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setSubtitle(null);
actionBar.setCustomView(R.layout.settings_do_action_layout);
Button cancelButton = (Button)actionBar.getCustomView().findViewById(R.id.cancel_button);
cancelButton.setOnClickListener(new View.OnClickListener() { cancelButton.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
finishFragment(); finishFragment();
} }
}); });
doneButton = actionBar.getCustomView().findViewById(R.id.done_button); doneButton = actionBarLayer.findViewById(R.id.done_button);
doneButton.setOnClickListener(new View.OnClickListener() { doneButton.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
...@@ -86,45 +63,6 @@ public class SettingsChangeNameActivity extends BaseFragment { ...@@ -86,45 +63,6 @@ public class SettingsChangeNameActivity extends BaseFragment {
TextView textView = (TextView)doneButton.findViewById(R.id.done_button_text); TextView textView = (TextView)doneButton.findViewById(R.id.done_button_text);
textView.setText(LocaleController.getString("Done", R.string.Done)); textView.setText(LocaleController.getString("Done", R.string.Done));
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("mainconfig", Activity.MODE_PRIVATE);
boolean animations = preferences.getBoolean("view_animations", true);
if (!animations) {
firstNameField.requestFocus();
Utilities.showKeyboard(firstNameField);
}
}
@Override
public Animation onCreateAnimation(int transit, boolean enter, int nextAnim) {
if (nextAnim != 0) {
Animation anim = AnimationUtils.loadAnimation(getActivity(), nextAnim);
anim.setAnimationListener(new Animation.AnimationListener() {
public void onAnimationStart(Animation animation) {
SettingsChangeNameActivity.this.onAnimationStart();
}
public void onAnimationRepeat(Animation animation) {
}
public void onAnimationEnd(Animation animation) {
SettingsChangeNameActivity.this.onAnimationEnd();
firstNameField.requestFocus();
Utilities.showKeyboard(firstNameField);
}
});
return anim;
} else {
return super.onCreateAnimation(transit, enter, nextAnim);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (fragmentView == null) {
fragmentView = inflater.inflate(R.layout.settings_change_name_layout, container, false); fragmentView = inflater.inflate(R.layout.settings_change_name_layout, container, false);
TLRPC.User user = MessagesController.getInstance().users.get(UserConfig.clientUserId); TLRPC.User user = MessagesController.getInstance().users.get(UserConfig.clientUserId);
...@@ -175,6 +113,16 @@ public class SettingsChangeNameActivity extends BaseFragment { ...@@ -175,6 +113,16 @@ public class SettingsChangeNameActivity extends BaseFragment {
return fragmentView; return fragmentView;
} }
@Override
public void onResume() {
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("mainconfig", Activity.MODE_PRIVATE);
boolean animations = preferences.getBoolean("view_animations", true);
if (!animations) {
firstNameField.requestFocus();
Utilities.showKeyboard(firstNameField);
}
}
private void saveName() { private void saveName() {
TLRPC.TL_account_updateProfile req = new TLRPC.TL_account_updateProfile(); TLRPC.TL_account_updateProfile req = new TLRPC.TL_account_updateProfile();
if (UserConfig.currentUser == null || lastNameField.getText() == null || firstNameField.getText() == null) { if (UserConfig.currentUser == null || lastNameField.getText() == null || firstNameField.getText() == null) {
...@@ -196,4 +144,10 @@ public class SettingsChangeNameActivity extends BaseFragment { ...@@ -196,4 +144,10 @@ public class SettingsChangeNameActivity extends BaseFragment {
} }
}, null, true, RPCRequest.RPCRequestClassGeneric); }, null, true, RPCRequest.RPCRequestClassGeneric);
} }
@Override
public void onOpenAnimationEnd() {
firstNameField.requestFocus();
Utilities.showKeyboard(firstNameField);
}
} }
...@@ -24,6 +24,7 @@ import org.telegram.messenger.Utilities; ...@@ -24,6 +24,7 @@ import org.telegram.messenger.Utilities;
public class BackupImageView extends ImageView { public class BackupImageView extends ImageView {
boolean makeRequest = true; boolean makeRequest = true;
public String currentPath; public String currentPath;
public boolean processDetach = true;
private boolean isPlaceholder; private boolean isPlaceholder;
private boolean ignoreLayout = true; private boolean ignoreLayout = true;
...@@ -179,8 +180,10 @@ public class BackupImageView extends ImageView { ...@@ -179,8 +180,10 @@ public class BackupImageView extends ImageView {
@Override @Override
protected void onDetachedFromWindow() { protected void onDetachedFromWindow() {
super.onDetachedFromWindow(); super.onDetachedFromWindow();
if (processDetach) {
recycleBitmap(null); recycleBitmap(null);
} }
}
@Override @Override
protected void onDraw(Canvas canvas) { protected void onDraw(Canvas canvas) {
......
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="1.0"
android:toAlpha="0.0"
android:duration="150" />
</set>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="150" />
</set>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="100%"
android:toXDelta="0"
android:duration="150"/>
</set>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment