@@ -3,30 +3,17 @@
import android.content.Context;
import android.os.AsyncTask;

import com.dropbox.client2.DropboxAPI;
import com.dropbox.client2.android.AndroidAuthSession;
import com.dropbox.client2.exception.DropboxException;

public class LogonValidityCheck extends AsyncTask<Void, Void, String> {
private DropboxAPI<AndroidAuthSession> dbApi;
private String response;
private final String TAG = this.getClass().getSimpleName();
private Context context;

public LogonValidityCheck(DropboxAPI<AndroidAuthSession> dbApi, Context context) {
this.dbApi = dbApi;
public LogonValidityCheck(Context context) {
this.context = context;
}

@Override
protected String doInBackground(Void... params) {

try {
DropboxAPI.Account account = dbApi.accountInfo();
return account.displayName;
} catch (DropboxException e) {
//swallow
}
return "";
}
}
@@ -4,12 +4,6 @@
import android.content.Context;
import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.util.Log;

import com.dropbox.client2.DropboxAPI;
import com.dropbox.client2.android.AndroidAuthSession;
import com.dropbox.client2.exception.DropboxException;
import com.dropbox.client2.session.AppKeyPair;

import java.io.File;
import java.io.FileInputStream;
@@ -21,8 +15,6 @@ public class UploadFile extends AsyncTask<Void, Integer, String> {

private final String TAG = this.getClass().getSimpleName();
private Context context;
AndroidAuthSession newSession;
private DropboxAPI emboDBApi;
private ArrayList<String> fileNames;
private int totalCount;
private int currentCount;
@@ -45,8 +37,6 @@ protected void onPreExecute() {
public UploadFile(UpdateableFragment frag, Context c, ArrayList<String> fileNames) {
this.context = c;
SharedPreferences prefs = c.getSharedPreferences("prefs", Context.MODE_PRIVATE);
newSession = new AndroidAuthSession(new AppKeyPair(BuildConfig.API_KEY, BuildConfig.API_PASS), prefs.getString("emboDBAccessToken", ""));
emboDBApi = new DropboxAPI<>(newSession);
this.fileNames = fileNames;
this.frag = frag;
totalCount = fileNames.size();
@@ -60,17 +50,10 @@ protected String doInBackground(Void... params) {
publishProgress(totalCount, currentCount);
File file = new File(context.getFilesDir() + "/" + name);
FileInputStream inputStream = new FileInputStream(file);
DropboxAPI.Entry response = emboDBApi.putFile(name, inputStream, file.length(), null, null);
if (response != null) {
file.delete();
}
}

} catch (FileNotFoundException e) {
//swallow
} catch (DropboxException e) {
Log.v(TAG, "Dropbox exception thrown");
//swallow
}
return "";
}
@@ -0,0 +1,65 @@
package com.noni.embryio;

import android.graphics.Bitmap;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.webkit.WebResourceRequest;
import android.webkit.WebResourceResponse;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;

public class WebViewActivity extends AppCompatActivity {

private String mAuthUrl;
private WebView mAuthWebView;
private Button mOkButton;
private EditText mAuthEditText;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web_view);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_auth_activity);
mOkButton = (Button) findViewById(R.id.btn_ok);
mAuthEditText = (EditText) findViewById(R.id.et_auth_code);
initialiseToolbar(toolbar);
mAuthWebView = (WebView) findViewById(R.id.view_webview_auth);
initialiseWebView();
mAuthUrl = getIntent().getStringExtra(LogonActivity.EXTRA_AUTH_URL);
}

private void initialiseToolbar(Toolbar toolbar) {
if (getSupportActionBar() != null) {
setSupportActionBar(toolbar);
}
}

private void initialiseWebView() {
mAuthWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
return super.shouldOverrideUrlLoading(view, request);
}

@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}

@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
return super.shouldInterceptRequest(view, request);
}

@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
});
mAuthWebView.loadUrl(mAuthUrl);
}

}
@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.noni.embryio.WebViewActivity">

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_auth_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.v7.widget.Toolbar>
<LinearLayout
android:layout_alignParentBottom="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:weightSum="2">

<EditText
android:id="@+id/et_auth_code"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"/>

<Button
android:id="@+id/btn_ok"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="1"/>
</LinearLayout>
<WebView
android:paddingTop="60dp"
android:layout_alignParentTop="true"
android:id="@+id/view_webview_auth"
android:layout_width="match_parent"
android:layout_height="match_parent">
</WebView>
</RelativeLayout>
@@ -67,4 +67,14 @@
<string name="txt_title_tab1">Download contacts</string>
<string name="txt_title_tab2">Upload contacts</string>
<string name="txt_title_tab3">Delete contacts</string>

<!---Main activity auth dialog -->
<string name="title_db_auth_dialog">Dropbox Authorisation</string>
<string name="body_db_auth_dialog">You will be asked to authorise Address syncapp to use your dropbox. Once complete, please enter the code in the box below to logon</string>
<string name="btn_ok_db_auth_dialog">Ok</string>
<string name="title_activity_web_view">WebViewActivity</string>

<!---Webview Auth Activity -->
<string name="et_auth_hint">Authorisation Code</string>
<string name="txt_auth_btn">Authorise</string>
</resources>