database bugfix

check network state
This commit is contained in:
NudeDude 2018-07-31 20:30:28 +02:00
parent b148cb6e97
commit 89af291659
4 changed files with 57 additions and 31 deletions

View File

@ -2,8 +2,6 @@ package org.nuclearfog.twidda.backend;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.AsyncTask;
import android.widget.Toast;
@ -59,17 +57,16 @@ public class Registration extends AsyncTask<String, Void, Boolean> {
if(success) {
connect.setResult(Activity.RESULT_OK);
connect.finish();
} else {
try {
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(redirectionURL));
connect.startActivity(i);
} catch (Exception err) {
Toast.makeText(connect, "Keine Verbindung!", Toast.LENGTH_LONG).show();
}
}
if(errorMessage != null) {
} else if (errorMessage != null) {
Toast.makeText(connect,errorMessage,Toast.LENGTH_LONG).show();
} else {
ui.get().connect(redirectionURL);
}
}
}
public interface OnConnect {
void connect(String link);
}
}

View File

@ -18,7 +18,7 @@ public class AppDatabase extends SQLiteOpenHelper
"statusregister INTEGER, source TEXT, FOREIGN KEY (userID) REFERENCES user(userID));";
private static final String favoriteTable = "CREATE TABLE IF NOT EXISTS favorit (" +
"ownerID INTEGER, tweetID INTEGER UNIQUE," +
"ownerID INTEGER, tweetID INTEGER PRIMARY KEY," +
"FOREIGN KEY (ownerID) REFERENCES user(userID)," +
"FOREIGN KEY (tweetID) REFERENCES tweet(tweetID));";
@ -38,8 +38,10 @@ public class AppDatabase extends SQLiteOpenHelper
public void onCreate(SQLiteDatabase db) {
db.execSQL(userTable);
db.execSQL(tweetTable);
db.execSQL(trendTable);
db.execSQL(favoriteTable);
db.execSQL(trendTable);
db.execSQL(errorTable);
}
@ -47,12 +49,11 @@ public class AppDatabase extends SQLiteOpenHelper
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + "user");
db.execSQL("DROP TABLE IF EXISTS " + "tweet");
db.execSQL("DROP TABLE IF EXISTS " + "favorit");
db.execSQL("DROP TABLE IF EXISTS " + "timeline");
db.execSQL("DROP TABLE IF EXISTS " + "mentionTable");
db.execSQL("DROP TABLE IF EXISTS " + "trend");
db.execSQL("DROP TABLE IF EXISTS " + "error");
onCreate(db);
}

View File

@ -36,7 +36,6 @@ public class DatabaseAdapter {
/**
* Nutzer speichern
*
* @param user Nutzer Information
*/
public void storeUser(TwitterUser user) {
@ -47,7 +46,6 @@ public class DatabaseAdapter {
/**
* Home Timeline speichern
*
* @param home Tweet Liste
*/
public void storeHomeTimeline(List<Tweet> home) {
@ -61,7 +59,6 @@ public class DatabaseAdapter {
/**
* Erwähnungen speichern
*
* @param mentions Tweet Liste
*/
public void storeMentions(List<Tweet> mentions) {
@ -328,7 +325,14 @@ public class DatabaseAdapter {
*/
public void removeFavorite(long tweetId) {
SQLiteDatabase db = dataHelper.getWritableDatabase();
db.delete("favorit", "tweetID=" + tweetId + " AND ownerID="+homeId,null);//todo change flag
db.delete("favorit", "tweetID=" + tweetId + " AND ownerID=" + homeId, null);
int register = getStatRegister(db, tweetId);
register &= ~favoritedmask;
ContentValues status = new ContentValues();
status.put("statusregister", register);
db.update("tweet", status, "tweet.tweetID=" + tweetId, null);
db.close();
}
@ -377,8 +381,8 @@ public class DatabaseAdapter {
long replyUserId = cursor.getLong(index);
index = cursor.getColumnIndex("statusregister");
int statusregister = cursor.getInt(index);
boolean favorited = (statusregister & 1) == 1;
boolean retweeted = (statusregister & 2) == 2;
boolean favorited = (statusregister & 1) == favoritedmask;
boolean retweeted = (statusregister & 2) == retweetedmask;
String[] medias = parseMedia(medialinks);
@ -423,7 +427,7 @@ public class DatabaseAdapter {
}
private void storeStatus(Tweet tweet, int newStatusregister, SQLiteDatabase db) {
private void storeStatus(Tweet tweet, int newStatusRegister, SQLiteDatabase db) {
ContentValues status = new ContentValues();
TwitterUser mUser = tweet.user;
Tweet rtStat = tweet.embedded;
@ -455,14 +459,19 @@ public class DatabaseAdapter {
}
status.put("media",media.toString());
int statusregister = getStatRegister(db,tweet.tweetID);
statusregister |= newStatusregister;
statusregister |= newStatusRegister;
if (tweet.favorized)
statusregister |= 1;
statusregister |= favoritedmask;
else
statusregister &= ~favoritedmask;
if (tweet.retweeted)
statusregister |= 1 << 1;
statusregister |= retweetedmask;
else
statusregister &= ~retweetedmask;
status.put("statusregister", statusregister);
db.insertWithOnConflict("tweet",null, status, CONFLICT_REPLACE);
db.insertWithOnConflict("tweet", null, status, CONFLICT_IGNORE);
}

View File

@ -2,6 +2,10 @@ package org.nuclearfog.twidda.window;
import android.app.Activity;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
@ -10,14 +14,15 @@ import android.widget.Toast;
import org.nuclearfog.twidda.R;
import org.nuclearfog.twidda.backend.Registration;
import org.nuclearfog.twidda.backend.Registration.OnConnect;
public class LoginPage extends Activity implements OnClickListener {
public class LoginPage extends Activity implements OnClickListener, OnConnect {
private EditText pin;
@Override
protected void onCreate(Bundle b){
protected void onCreate(Bundle b) {
super.onCreate(b);
setContentView(R.layout.loginpage);
pin = findViewById(R.id.pin);
@ -63,4 +68,18 @@ public class LoginPage extends Activity implements OnClickListener {
break;
}
}
@Override
public void connect(String link) {
ConnectivityManager mConnect = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (mConnect != null && mConnect.getActiveNetworkInfo() != null) {
if (mConnect.getActiveNetworkInfo().isConnected()) {
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(link));
startActivity(i);
}
} else {
Toast.makeText(this, "Keine Verbindung!", Toast.LENGTH_SHORT).show();
}
}
}