Works when Telegram is closed

This commit is contained in:
JuanLuM 2014-02-25 13:48:14 +01:00
parent b1fda268c1
commit 3abe32376b
2 changed files with 80 additions and 33 deletions

View file

@ -23,6 +23,7 @@ import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.Surface;
import android.view.View;
import android.view.ViewGroup;
@ -31,7 +32,9 @@ import android.view.WindowManager;
import android.widget.EditText;
import android.widget.TextView;
import org.telegram.TL.TLRPC;
import org.telegram.messenger.ConnectionsManager;
import org.telegram.messenger.ContactsController;
import org.telegram.messenger.FileLog;
import org.telegram.messenger.MessagesController;
import org.telegram.messenger.NotificationCenter;
@ -47,6 +50,7 @@ import net.hockeyapp.android.UpdateManager;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Enumeration;
public class ApplicationActivity extends ActionBarActivity implements NotificationCenter.NotificationCenterDelegate, MessagesActivity.MessagesActivityDelegate {
private boolean finished = false;
@ -121,26 +125,43 @@ public class ApplicationActivity extends ActionBarActivity implements Notificati
videoPath = (String)NotificationCenter.Instance.getFromMemCache(534);
sendingText = (String)NotificationCenter.Instance.getFromMemCache(535);
String phone_ntg = (String)NotificationCenter.Instance.getFromMemCache("phone_ntg", null);
if( phone_ntg != null){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(ApplicationLoader.applicationContext.getString(R.string.InviteUser));
builder.setTitle(ApplicationLoader.applicationContext.getString(R.string.AppName));
final String arg1 = phone_ntg;
builder.setPositiveButton(ApplicationLoader.applicationContext.getString(R.string.OK), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
try {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.fromParts("sms", arg1, null));
intent.putExtra("sms_body", ApplicationLoader.applicationContext.getString(R.string.InviteText));
startActivity(intent);
} catch (Exception e) {
FileLog.e("tmessages", e);
String phone = (String)NotificationCenter.Instance.getFromMemCache("phone", null);
if (phone != null) {
if (ContactsController.Instance.contactsLoaded) {
push_user_id = 0;
Enumeration<TLRPC.User> users = MessagesController.Instance.users.elements();
while (users.hasMoreElements()) {
TLRPC.User u = users.nextElement();
if(u.phone.equals(phone)) {
push_user_id = u.id;
}
}
});
builder.setNegativeButton(ApplicationLoader.applicationContext.getString(R.string.Cancel), null);
builder.show().setCanceledOnTouchOutside(true);
if (push_user_id != 0) {
NotificationCenter.Instance.postNotificationName(MessagesController.closeChats);
} else {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(ApplicationLoader.applicationContext.getString(R.string.InviteUser));
builder.setTitle(ApplicationLoader.applicationContext.getString(R.string.AppName));
final String arg1 = phone;
builder.setPositiveButton(ApplicationLoader.applicationContext.getString(R.string.OK), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
try {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.fromParts("sms", arg1, null));
intent.putExtra("sms_body", ApplicationLoader.applicationContext.getString(R.string.InviteText));
startActivity(intent);
} catch (Exception e) {
FileLog.e("tmessages", e);
}
}
});
builder.setNegativeButton(ApplicationLoader.applicationContext.getString(R.string.Cancel), null);
builder.show().setCanceledOnTouchOutside(true);
}
} else {
NotificationCenter.Instance.addToMemCache("ur_phone",phone);
NotificationCenter.Instance.addObserver(this, MessagesController.contactsDidLoaded);
}
}
if (push_user_id != 0) {
@ -533,6 +554,46 @@ public class ApplicationActivity extends ActionBarActivity implements Notificati
FileLog.e("tmessages", "switch to state " + state);
currentConnectionState = state;
updateActionBar();
}
} else if (id == MessagesController.contactsDidLoaded) {
String phone = (String)NotificationCenter.Instance.getFromMemCache("ur_phone",null);
if(phone != null){
int user_id = 0;
Enumeration<TLRPC.User> users = MessagesController.Instance.users.elements();
while (users.hasMoreElements()) {
TLRPC.User u = users.nextElement();
if(u.phone.equals(phone)) {
user_id = u.id;
}
}
if(user_id == 0) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(ApplicationLoader.applicationContext.getString(R.string.InviteUser));
builder.setTitle(ApplicationLoader.applicationContext.getString(R.string.AppName));
final String arg1 = phone;
builder.setPositiveButton(ApplicationLoader.applicationContext.getString(R.string.OK), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
try {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.fromParts("sms", arg1, null));
intent.putExtra("sms_body", ApplicationLoader.applicationContext.getString(R.string.InviteText));
startActivity(intent);
} catch (Exception e) {
FileLog.e("tmessages", e);
}
}
});
builder.setNegativeButton(ApplicationLoader.applicationContext.getString(R.string.Cancel), null);
builder.show().setCanceledOnTouchOutside(true);
} else {
NotificationCenter.Instance.postNotificationName(MessagesController.closeChats);
NotificationCenter.Instance.addToMemCache("push_user_id", user_id);
Intent intent2 = new Intent(this, ApplicationActivity.class);
startActivity(intent2);
}
}
}
}

View file

@ -138,21 +138,7 @@ public class LaunchActivity extends PausableActivity {
phone = user.phone.substring(0,2) + phone;
}
}
int user_id = 0;
Enumeration<TLRPC.User> users = MessagesController.Instance.users.elements();
while (users.hasMoreElements()) {
TLRPC.User u = users.nextElement();
if(u.phone.equals(phone)) {
user_id = u.id;
}
}
if(user_id == 0) {
NotificationCenter.Instance.addToMemCache("phone_ntg",phone);
} else {
NotificationCenter.Instance.postNotificationName(MessagesController.closeChats);
NotificationCenter.Instance.addToMemCache("push_user_id", user_id);
}
NotificationCenter.Instance.addToMemCache("phone",phone);
} else if (intent.getAction().equals("org.telegram.messenger.OPEN_ACCOUNT")) {
NotificationCenter.Instance.addToMemCache("open_settings", 1);
}