1
0
Fork 0
mirror of https://github.com/gsantner/dandelion synced 2024-11-22 12:22:08 +01:00

Merge pull request #3 from de-live-gdev/master

gitignore;Link to profile; Move menu actions; Refactoring part1; #1 ; bump libs
This commit is contained in:
Gaukler Faun 2016-03-21 07:35:42 +01:00
commit 5345e87c40
36 changed files with 588 additions and 798 deletions

57
.gitignore vendored
View file

@ -1,8 +1,53 @@
*.iml
*~
# Gradle
.gradle/
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
build/
/*/build/
# User-specific configurations
local.properties
.idea
.idea/libraries/
.idea/runConfigurations.xml
.idea/gradle.xml
.idea/workspace.xml
.idea/tasks.xml
.idea/.name
.idea/compiler.xml
.idea/copyright/profiles_settings.xml
.idea/encodings.xml
.idea/misc.xml
.idea/modules.xml
.idea/scopes/scope_settings.xml
.idea/vcs.xml
*.iml
# OS-specific files
.DS_Store
/build
/captures
.DS_Store?
._*
.Trashes
ehthumbs.db
Thumbs.db
# Built application files
*.apk
*.ap_
# Files for the Dalvik VM
*.dex
# Java class files
*.class
# Generated files
bin/
gen/
local.properties
proguard/
*.log
.navigation/

View file

@ -1 +0,0 @@
Diaspora

View file

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<resourceExtensions />
<wildcardResourcePatterns>
<entry name="!?*.java" />
<entry name="!?*.form" />
<entry name="!?*.class" />
<entry name="!?*.groovy" />
<entry name="!?*.scala" />
<entry name="!?*.flex" />
<entry name="!?*.kt" />
<entry name="!?*.clj" />
<entry name="!?*.aj" />
</wildcardResourcePatterns>
<annotationProcessing>
<profile default="true" name="Default" enabled="false">
<processorPath useClasspath="true" />
</profile>
</annotationProcessing>
</component>
</project>

View file

@ -1,3 +0,0 @@
<component name="CopyrightManager">
<settings default="" />
</component>

View file

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="distributionType" value="LOCAL" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleHome" value="$APPLICATION_HOME_DIR$/gradle/gradle-2.8" />
<option name="gradleJvm" value="1.8" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
</set>
</option>
</GradleProjectSettings>
</option>
</component>
</project>

View file

@ -1,46 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="EntryPointsManager">
<entry_points version="2.0" />
</component>
<component name="NullableNotNullManager">
<option name="myDefaultNullable" value="android.support.annotation.Nullable" />
<option name="myDefaultNotNull" value="android.support.annotation.NonNull" />
<option name="myNullables">
<value>
<list size="4">
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
<item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" />
<item index="3" class="java.lang.String" itemvalue="android.support.annotation.Nullable" />
</list>
</value>
</option>
<option name="myNotNulls">
<value>
<list size="4">
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
<item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
<item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
</list>
</value>
</option>
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
<OptionsSetting value="true" id="Add" />
<OptionsSetting value="true" id="Remove" />
<OptionsSetting value="true" id="Checkout" />
<OptionsSetting value="true" id="Update" />
<OptionsSetting value="true" id="Status" />
<OptionsSetting value="true" id="Edit" />
<ConfirmationsSetting value="0" id="Add" />
<ConfirmationsSetting value="0" id="Remove" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
</project>

View file

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/Diaspora.iml" filepath="$PROJECT_DIR$/Diaspora.iml" />
<module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
</modules>
</component>
</project>

View file

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RunConfigurationProducerService">
<option name="ignoredProducers">
<set>
<option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
</set>
</option>
</component>
</project>

View file

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View file

@ -27,7 +27,7 @@ android {
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
compile 'com.android.support:appcompat-v7:23.2.1'
compile 'com.android.support:design:23.2.1'
compile 'com.getbase:floatingactionbutton:1.9.1'
}

View file

@ -1,13 +0,0 @@
package de.baumann.diaspora;
import android.app.Application;
import android.test.ApplicationTestCase;
/**
* <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a>
*/
public class ApplicationTest extends ApplicationTestCase<Application> {
public ApplicationTest() {
super(Application.class);
}
}

View file

@ -0,0 +1,32 @@
package de.baumann.diaspora;
import android.content.Context;
import android.content.SharedPreferences;
/**
* Created by de-live-gdev on 20.03.16.
*/
public class AppSettings {
private Context context;
private SharedPreferences pref;
public AppSettings(Context context){
this.context = context.getApplicationContext();
pref = this.context.getSharedPreferences("app", Context.MODE_PRIVATE);
}
private void setString(String key, String value){
pref.edit().putString(key,value).apply();
}
/*
// Setters & Getters
*/
private static final String PREF_PROFILE_ID = "profileID";
public String getProfileId(){
return pref.getString(PREF_PROFILE_ID, "");
}
public void setProfileId(String profileId){
setString(PREF_PROFILE_ID, profileId);
}
}

View file

@ -57,7 +57,6 @@ import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.webkit.JavascriptInterface;
import android.webkit.JsResult;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
@ -82,24 +81,26 @@ public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
private static final String URL_MESSAGE = "URL_MESSAGE";
final Handler myHandler = new Handler();
WebView webView;
static final String TAG = "Diaspora Main";
String podDomain;
Menu menu;
int notificationCount = 0;
int conversationCount = 0;
ValueCallback<Uri[]> mFilePathCallback;
String mCameraPhotoPath;
public static final int INPUT_FILE_REQUEST_CODE = 1;
com.getbase.floatingactionbutton.FloatingActionsMenu fab;
TextView txtTitle;
ProgressBar progressBar;
WebSettings wSettings;
PrefManager pm;
private static final int REQUEST_CODE_ASK_PERMISSIONS = 123;
private static final String URL_MESSAGE = "URL_MESSAGE";
private AppSettings appSettings;
private final Handler myHandler = new Handler();
private WebView webView;
private String podDomain;
private Menu menu;
private int notificationCount = 0;
private int conversationCount = 0;
private String profileId = "";
private ValueCallback<Uri[]> mFilePathCallback;
private String mCameraPhotoPath;
private com.getbase.floatingactionbutton.FloatingActionsMenu fab;
private TextView txtTitle;
private ProgressBar progressBar;
private WebSettings wSettings;
private PrefManager pm;
private SwipeRefreshLayout swipeView;
final private int REQUEST_CODE_ASK_PERMISSIONS = 123;
@SuppressLint("SetJavaScriptEnabled")
@Override
@ -125,6 +126,11 @@ public class MainActivity extends AppCompatActivity
}
});
// Load app settings
appSettings = new AppSettings(getApplicationContext());
profileId = appSettings.getProfileId();
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
@ -134,7 +140,7 @@ public class MainActivity extends AppCompatActivity
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
progressBar = (ProgressBar)findViewById(R.id.progressBar);
progressBar = (ProgressBar) findViewById(R.id.progressBar);
pm = new PrefManager(MainActivity.this);
SharedPreferences config = getSharedPreferences("PodSettings", MODE_PRIVATE);
@ -147,8 +153,8 @@ public class MainActivity extends AppCompatActivity
swipeView.setColorSchemeResources(R.color.colorPrimary,
R.color.fab_big);
webView = (WebView)findViewById(R.id.webView);
webView.addJavascriptInterface(new JavaScriptInterface(), "NotificationCounter");
webView = (WebView) findViewById(R.id.webView);
webView.addJavascriptInterface(new JavaScriptInterface(), "AndroidBridge");
if (savedInstanceState != null) {
webView.restoreState(savedInstanceState);
@ -209,6 +215,7 @@ public class MainActivity extends AppCompatActivity
if (progress > 60) {
Helpers.hideTopBar(wv);
Helpers.getProfileId(wv);
fab.setVisibility(View.VISIBLE);
}
@ -269,17 +276,13 @@ public class MainActivity extends AppCompatActivity
return true;
}
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
return super.onJsAlert(view, url, message, result);
}
});
if (savedInstanceState == null) {
if (Helpers.isOnline(MainActivity.this)) {
webView.loadData("", "text/html", null);
webView.loadUrl("https://"+podDomain);
webView.loadUrl("https://" + podDomain);
} else {
Snackbar.make(swipeView, R.string.no_internet, Snackbar.LENGTH_INDEFINITE).show();
}
@ -291,7 +294,7 @@ public class MainActivity extends AppCompatActivity
* Fab button events
*/
public void fab1_click (View v){
public void fab1_click(View v) {
fab.collapse();
if (Helpers.isOnline(MainActivity.this)) {
webView.loadUrl("https://" + podDomain + "/status_messages/new");
@ -301,14 +304,15 @@ public class MainActivity extends AppCompatActivity
}
}
public void fab2_click(View v){
public void fab2_click(View v) {
fab.collapse();
if (Helpers.isOnline(MainActivity.this)) {
final AlertDialog.Builder alert = new AlertDialog.Builder(this);
final EditText input = new EditText(this);
alert.setView(input);
alert.setTitle(R.string.search_alert_title);
alert.setPositiveButton(R.string.search_alert_people, new DialogInterface.OnClickListener() {
final AlertDialog.Builder dialog = new AlertDialog.Builder(this)
.setView(input)
.setIcon(R.drawable.ic_launcher)
.setTitle(R.string.search_alert_title)
.setPositiveButton(R.string.search_alert_people, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String inputTag = input.getText().toString().trim();
String cleanTag = inputTag.replaceAll("\\*", "");
@ -321,7 +325,8 @@ public class MainActivity extends AppCompatActivity
setTitle(R.string.fab2_title_person);
}
}
}).setNegativeButton(R.string.search_alert_tag,
})
.setNegativeButton(R.string.search_alert_tag,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String inputTag = input.getText().toString().trim();
@ -336,16 +341,15 @@ public class MainActivity extends AppCompatActivity
}
}
});
alert.show();
}
else {
dialog.show();
} else {
Snackbar.make(swipeView, R.string.no_internet, Snackbar.LENGTH_INDEFINITE).show();
}
}
public void fab3_click(View v){
public void fab3_click(View v) {
fab.collapse();
webView.scrollTo(0,0);
webView.scrollTo(0, 0);
}
private File createImageFile() throws IOException {
@ -363,15 +367,15 @@ public class MainActivity extends AppCompatActivity
@Override
public void onActivityResult (int requestCode, int resultCode, Intent data) {
if(requestCode != INPUT_FILE_REQUEST_CODE || mFilePathCallback == null) {
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode != INPUT_FILE_REQUEST_CODE || mFilePathCallback == null) {
super.onActivityResult(requestCode, resultCode, data);
return;
}
Uri[] results = null;
if(resultCode == Activity.RESULT_OK) {
if(data == null) {
if(mCameraPhotoPath != null) {
if (resultCode == Activity.RESULT_OK) {
if (data == null) {
if (mCameraPhotoPath != null) {
results = new Uri[]{Uri.parse(mCameraPhotoPath)};
}
} else {
@ -432,7 +436,7 @@ public class MainActivity extends AppCompatActivity
}
}
private BroadcastReceiver brLoadUrl = new BroadcastReceiver() {
private final BroadcastReceiver brLoadUrl = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
@ -457,7 +461,7 @@ public class MainActivity extends AppCompatActivity
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
this.menu = menu;
MenuItem itemNotification = menu.findItem(R.id.notifications);
MenuItem itemNotification = menu.findItem(R.id.action_notifications);
if (itemNotification != null) {
if (notificationCount > 0) {
itemNotification.setIcon(R.drawable.ic_bell_ring_white_24dp);
@ -465,7 +469,7 @@ public class MainActivity extends AppCompatActivity
itemNotification.setIcon(R.drawable.ic_bell_outline_white_24dp);
}
MenuItem itemConversation = menu.findItem(R.id.conversations);
MenuItem itemConversation = menu.findItem(R.id.action_conversations);
if (conversationCount > 0) {
itemConversation.setIcon(R.drawable.ic_message_text_white_24dp);
} else {
@ -477,9 +481,8 @@ public class MainActivity extends AppCompatActivity
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.notifications) {
switch (item.getItemId()) {
case R.id.action_notifications: {
if (Helpers.isOnline(MainActivity.this)) {
webView.loadUrl("https://" + podDomain + "/notifications");
setTitle(R.string.jb_notifications);
@ -490,7 +493,7 @@ public class MainActivity extends AppCompatActivity
}
}
if (id == R.id.conversations) {
case R.id.action_conversations: {
if (Helpers.isOnline(MainActivity.this)) {
webView.loadUrl("https://" + podDomain + "/conversations");
setTitle(R.string.jb_conversations);
@ -501,7 +504,7 @@ public class MainActivity extends AppCompatActivity
}
}
if (id == R.id.exit) {
case R.id.action_exit: {
Snackbar snackbar = Snackbar
.make(swipeView, R.string.confirm_exit, Snackbar.LENGTH_LONG)
.setAction(R.string.yes, new View.OnClickListener() {
@ -512,144 +515,22 @@ public class MainActivity extends AppCompatActivity
});
snackbar.show();
}
break;
if (id == R.id.help_license) {
final CharSequence[] options = { getString(R.string.help_license), getString(R.string.help_about), getString(R.string.help_help), getString(R.string.help_donate) };
case R.id.action_share: {
final CharSequence[] options = {getString(R.string.share_link), getString(R.string.share_screenshot), getString(R.string.take_screenshot)};
new AlertDialog.Builder(MainActivity.this)
.setItems(options, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int item) {
if (options[item].equals(getString(R.string.help_license)))
{
final SpannableString s = new SpannableString(Html.fromHtml(getString(R.string.license_text)));
Linkify.addLinks(s, Linkify.WEB_URLS);
final AlertDialog d = new AlertDialog.Builder(MainActivity.this)
.setTitle(R.string.license_title)
.setMessage( s )
.setPositiveButton(getString(R.string.yes),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
}).show();
d.show();
((TextView)d.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance());
}
if (options[item].equals(getString(R.string.help_about)))
{
final SpannableString s = new SpannableString(Html.fromHtml(getString(R.string.about_text)));
Linkify.addLinks(s, Linkify.WEB_URLS);
final AlertDialog d = new AlertDialog.Builder(MainActivity.this)
.setTitle(R.string.help_about)
.setMessage(s)
.setPositiveButton(getString(R.string.yes),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
}).show();
d.show();
((TextView)d.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance());
}
if (options[item].equals(getString(R.string.help_help)))
{
new AlertDialog.Builder(MainActivity.this)
.setTitle(R.string.help_help)
.setMessage(Html.fromHtml(getString(R.string.markdown_text)))
.setPositiveButton(getString(R.string.yes),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
}).show();
}
if (options[item].equals(getString(R.string.help_donate)))
{
new AlertDialog.Builder(MainActivity.this)
.setMessage(getString(R.string.donate_text))
.setPositiveButton(getString(R.string.yes),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
})
.setNegativeButton(getString(R.string.donate_1),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("http://martinv.tip.me/"));
startActivity(i);
dialog.cancel();
}
}).show();
}
}
}).show();
}
if (id == R.id.view) {
final CharSequence[] options = { getString(R.string.settings_font), getString(R.string.settings_view),getString(R.string.settings_image) };
if (Helpers.isOnline(MainActivity.this)) {
new AlertDialog.Builder(MainActivity.this)
.setItems(options, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int item) {
if (options[item].equals(getString(R.string.settings_font)))
alertFormElements();
if (options[item].equals(getString(R.string.settings_view)))
webView.loadUrl("https://" + podDomain + "/mobile/toggle");
if (options[item].equals(getString(R.string.settings_image)))
wSettings.setLoadsImagesAutomatically(!pm.getLoadImages());
pm.setLoadImages(!pm.getLoadImages());
webView.loadUrl(webView.getUrl());
}
}).show();
} else {
Snackbar.make(swipeView, R.string.no_internet, Snackbar.LENGTH_INDEFINITE).show();
}
}
if (id == R.id.share) {
final CharSequence[] options = { getString(R.string.share_link), getString(R.string.share_screenshot),getString(R.string.take_screenshot) };
new AlertDialog.Builder(MainActivity.this)
.setItems(options, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int item) {
if (options[item].equals(getString(R.string.share_link)))
{
if (options[item].equals(getString(R.string.share_link))) {
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
sharingIntent.setType("image/png");
sharingIntent.putExtra(Intent.EXTRA_SUBJECT, webView.getTitle());
sharingIntent.putExtra(Intent.EXTRA_TEXT, webView.getUrl());
startActivity(Intent.createChooser(sharingIntent, "Share using"));
}
if (options[item].equals(getString(R.string.share_screenshot)))
{
if (options[item].equals(getString(R.string.share_screenshot))) {
if (android.os.Build.VERSION.SDK_INT >= 23) {
int hasWRITE_EXTERNAL_STORAGE = checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE);
if (hasWRITE_EXTERNAL_STORAGE != PackageManager.PERMISSION_GRANTED) {
@ -668,46 +549,36 @@ public class MainActivity extends AppCompatActivity
.show();
return;
}
requestPermissions(new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE},
requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
REQUEST_CODE_ASK_PERMISSIONS);
return;
}
}
Snackbar.make(swipeView, R.string.toast_screenshot, Snackbar.LENGTH_LONG).show();
File directory = new File(Environment.getExternalStorageDirectory() + "/Pictures/Diaspora/");
if (!directory.exists()) {
directory.mkdirs();
}
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd_HH-mm");
Picture picture = webView.capturePicture();
Bitmap b = Bitmap.createBitmap(picture.getWidth(), picture.getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
File screen = new File(Environment.getExternalStorageDirectory() + "/Pictures/Diaspora/"
+ dateFormat.format(date) + ".jpg");
if (screen.exists())
screen.delete();
picture.draw(c);
FileOutputStream fos = null;
try {
fos = new FileOutputStream(screen);
if (fos != null) {
b.compress(Bitmap.CompressFormat.JPEG, 90, fos);
fos.close();
}
} catch (Exception e) {
e.getMessage();
}
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
sharingIntent.setType("image/png");
sharingIntent.putExtra(Intent.EXTRA_SUBJECT, webView.getTitle());
@ -716,17 +587,13 @@ public class MainActivity extends AppCompatActivity
+ dateFormat.format(date) + ".jpg"));
sharingIntent.putExtra(Intent.EXTRA_STREAM, bmpUri);
startActivity(Intent.createChooser(sharingIntent, "Share using"));
File file = new File(Environment.getExternalStorageDirectory() + "/Pictures/Diaspora/"
+ dateFormat.format(date) + ".jpg");
Uri uri = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri);
sendBroadcast(intent);
}
if (options[item].equals(getString(R.string.take_screenshot)))
{
if (options[item].equals(getString(R.string.take_screenshot))) {
if (android.os.Build.VERSION.SDK_INT >= 23) {
int hasWRITE_EXTERNAL_STORAGE = checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE);
if (hasWRITE_EXTERNAL_STORAGE != PackageManager.PERMISSION_GRANTED) {
@ -745,64 +612,52 @@ public class MainActivity extends AppCompatActivity
.show();
return;
}
requestPermissions(new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE},
requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
REQUEST_CODE_ASK_PERMISSIONS);
return;
}
}
Snackbar.make(swipeView, R.string.toast_screenshot, Snackbar.LENGTH_LONG).show();
File directory = new File(Environment.getExternalStorageDirectory() + "/Pictures/Diaspora/");
if (!directory.exists()) {
directory.mkdirs();
}
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd_HH-mm");
Picture picture = webView.capturePicture();
Bitmap b = Bitmap.createBitmap(picture.getWidth(), picture.getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
File screen = new File(Environment.getExternalStorageDirectory() + "/Pictures/Diaspora/"
+ dateFormat.format(date) + ".jpg");
if (screen.exists())
screen.delete();
picture.draw(c);
FileOutputStream fos = null;
try {
fos = new FileOutputStream(screen);
if (fos != null) {
b.compress(Bitmap.CompressFormat.JPEG, 90, fos);
fos.close();
}
} catch (Exception e) {
e.getMessage();
}
File file = new File(Environment.getExternalStorageDirectory() + "/Pictures/Diaspora/"
+ dateFormat.format(date) + ".jpg");
Uri uri = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri);
sendBroadcast(intent);
}
}
}).show();
}
break;
}
return super.onOptionsItemSelected(item);
}
public void alertFormElements() {
private void alertFormElements() {
/*
* Inflate the XML view. activity_main is in
@ -851,13 +706,13 @@ public class MainActivity extends AppCompatActivity
public class JavaScriptInterface {
@JavascriptInterface
public void setNotificationCount(final String webMessage){
public void setNotificationCount(final String webMessage) {
myHandler.post(new Runnable() {
@Override
public void run() {
notificationCount = Integer.valueOf(webMessage);
MenuItem item = menu.findItem(R.id.notifications);
MenuItem item = menu.findItem(R.id.action_notifications);
if (item != null) {
if (notificationCount > 0) {
@ -887,13 +742,23 @@ public class MainActivity extends AppCompatActivity
}
@JavascriptInterface
public void setConversationCount(final String webMessage){
public void setProfileId(final String webMessage) {
if(profileId.equals("") || !profileId.equals(webMessage)) {
profileId = webMessage;
appSettings.setProfileId(profileId);
}
}
@JavascriptInterface
public void setConversationCount(final String webMessage) {
myHandler.post(new Runnable() {
@Override
public void run() {
conversationCount = Integer.valueOf(webMessage);
MenuItem item = menu.findItem(R.id.conversations);
MenuItem item = menu.findItem(R.id.action_conversations);
if (item != null) {
if (conversationCount > 0) {
@ -927,87 +792,109 @@ public class MainActivity extends AppCompatActivity
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.jb_stream) {
switch (item.getItemId()) {
case R.id.nav_stream: {
if (Helpers.isOnline(MainActivity.this)) {
webView.loadUrl("https://" + podDomain + "/stream");
setTitle(R.string.jb_stream);
} else {
Snackbar.make(swipeView, R.string.no_internet, Snackbar.LENGTH_INDEFINITE).show();
}
}
break;
} else if (id == R.id.jb_followed_tags) {
case R.id.nav_profile: {
if (Helpers.isOnline(MainActivity.this)) {
webView.loadUrl("https://" + podDomain + "/people/" + profileId);
setTitle(R.string.jb_profile);
} else {
Snackbar.make(swipeView, R.string.no_internet, Snackbar.LENGTH_INDEFINITE).show();
}
}
break;
// TODO followed_tags currently not implemented as single viewable page (0.5.7.1-paf04894e, 2016 March 20)
case R.id.nav_followed_tags: {
if (Helpers.isOnline(MainActivity.this)) {
webView.loadUrl("https://" + podDomain + "/followed_tags");
setTitle(R.string.jb_followed_tags);
} else {
Snackbar.make(swipeView, R.string.no_internet, Snackbar.LENGTH_INDEFINITE).show();
}
}
break;
} else if (id == R.id.jb_aspects) {
case R.id.nav_aspects: {
if (Helpers.isOnline(MainActivity.this)) {
webView.loadUrl("https://" + podDomain + "/aspects");
setTitle(R.string.jb_aspects);
} else {
Snackbar.make(swipeView, R.string.no_internet, Snackbar.LENGTH_INDEFINITE).show();
}
}
break;
} else if (id == R.id.jb_activities) {
case R.id.nav_activities: {
if (Helpers.isOnline(MainActivity.this)) {
webView.loadUrl("https://" + podDomain + "/activity");
setTitle(R.string.jb_activities);
} else {
Snackbar.make(swipeView, R.string.no_internet, Snackbar.LENGTH_INDEFINITE).show();
}
}
break;
} else if (id == R.id.jb_liked) {
case R.id.nav_liked: {
if (Helpers.isOnline(MainActivity.this)) {
webView.loadUrl("https://" + podDomain + "/liked");
setTitle(R.string.jb_liked);
} else {
Snackbar.make(swipeView, R.string.no_internet, Snackbar.LENGTH_INDEFINITE).show();
}
}
break;
} else if (id == R.id.jb_commented) {
case R.id.nav_commented: {
if (Helpers.isOnline(MainActivity.this)) {
webView.loadUrl("https://" + podDomain + "/commented");
setTitle(R.string.jb_commented);
} else {
Snackbar.make(swipeView, R.string.no_internet, Snackbar.LENGTH_INDEFINITE).show();
}
}
break;
} else if (id == R.id.jb_mentions) {
case R.id.nav_mentions: {
if (Helpers.isOnline(MainActivity.this)) {
webView.loadUrl("https://" + podDomain + "/mentions");
setTitle(R.string.jb_mentions);
} else {
Snackbar.make(swipeView, R.string.no_internet, Snackbar.LENGTH_INDEFINITE).show();
}
}
break;
} else if (id == R.id.jb_public) {
case R.id.nav_public: {
if (Helpers.isOnline(MainActivity.this)) {
webView.loadUrl("https://" + podDomain + "/public");
setTitle(R.string.jb_public);
} else {
Snackbar.make(swipeView, R.string.no_internet, Snackbar.LENGTH_INDEFINITE).show();
}
}
break;
} else if (id == R.id.jb_settings_view) {
final CharSequence[] options = { getString(R.string.settings_font), getString(R.string.settings_view),getString(R.string.settings_image) };
case R.id.nav_settings_view: {
final CharSequence[] options = {getString(R.string.settings_font), getString(R.string.settings_view), getString(R.string.settings_image)};
if (Helpers.isOnline(MainActivity.this)) {
new AlertDialog.Builder(MainActivity.this)
.setItems(options, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int item) {
if (options[item].equals(getString(R.string.settings_font)))
alertFormElements();
if (options[item].equals(getString(R.string.settings_view)))
webView.loadUrl("https://" + podDomain + "/mobile/toggle");
if (options[item].equals(getString(R.string.settings_image)))
wSettings.setLoadsImagesAutomatically(!pm.getLoadImages());
pm.setLoadImages(!pm.getLoadImages());
@ -1017,27 +904,23 @@ public class MainActivity extends AppCompatActivity
} else {
Snackbar.make(swipeView, R.string.no_internet, Snackbar.LENGTH_INDEFINITE).show();
}
}
break;
} else if (id == R.id.jb_settings_diaspora) {
final CharSequence[] options2 = { getString(R.string.jb_settings), getString(R.string.jb_manage_tags),
getString(R.string.jb_contacts), getString(R.string.jb_pod) };
case R.id.nav_settings_diaspora: {
final CharSequence[] options2 = {getString(R.string.jb_settings), getString(R.string.jb_manage_tags),
getString(R.string.jb_contacts), getString(R.string.jb_pod)};
if (Helpers.isOnline(MainActivity.this)) {
new AlertDialog.Builder(MainActivity.this)
.setItems(options2, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int item) {
if (options2[item].equals(getString(R.string.jb_settings)))
webView.loadUrl("https://" + podDomain + "/user/edit");
if (options2[item].equals(getString(R.string.jb_manage_tags)))
webView.loadUrl("https://" + podDomain + "/tag_followings/manage");
if (options2[item].equals(getString(R.string.jb_contacts)))
webView.loadUrl("https://" + podDomain + "/contacts");
if (options2[item].equals(getString(R.string.jb_pod)))
new AlertDialog.Builder(MainActivity.this)
.setTitle(getString(R.string.confirmation))
@ -1064,25 +947,21 @@ public class MainActivity extends AppCompatActivity
} else {
Snackbar.make(swipeView, R.string.no_internet, Snackbar.LENGTH_INDEFINITE).show();
}
}
break;
} else if (id == R.id.jb_license_help) {
final CharSequence[] options = { getString(R.string.help_license), getString(R.string.help_about), getString(R.string.help_help), getString(R.string.help_donate) };
case R.id.nav_license_help: {
final CharSequence[] options = {getString(R.string.help_license), getString(R.string.help_about), getString(R.string.help_help), getString(R.string.help_donate)};
new AlertDialog.Builder(MainActivity.this)
.setItems(options, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int item) {
if (options[item].equals(getString(R.string.help_license)))
{
if (options[item].equals(getString(R.string.help_license))) {
final SpannableString s = new SpannableString(Html.fromHtml(getString(R.string.license_text)));
Linkify.addLinks(s, Linkify.WEB_URLS);
final AlertDialog d = new AlertDialog.Builder(MainActivity.this)
.setTitle(R.string.license_title)
.setMessage( s )
.setMessage(s)
.setPositiveButton(getString(R.string.yes),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
@ -1090,18 +969,14 @@ public class MainActivity extends AppCompatActivity
}
}).show();
d.show();
((TextView)d.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance());
((TextView) d.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance());
}
if (options[item].equals(getString(R.string.help_about)))
{
if (options[item].equals(getString(R.string.help_about))) {
final SpannableString s = new SpannableString(Html.fromHtml(getString(R.string.about_text)));
Linkify.addLinks(s, Linkify.WEB_URLS);
final AlertDialog d = new AlertDialog.Builder(MainActivity.this)
.setTitle(R.string.help_about)
.setMessage( s )
.setMessage(s)
.setPositiveButton(getString(R.string.yes),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
@ -1109,12 +984,9 @@ public class MainActivity extends AppCompatActivity
}
}).show();
d.show();
((TextView)d.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance());
((TextView) d.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance());
}
if (options[item].equals(getString(R.string.help_help)))
{
if (options[item].equals(getString(R.string.help_help))) {
new AlertDialog.Builder(MainActivity.this)
.setTitle(R.string.help_help)
.setMessage(Html.fromHtml(getString(R.string.markdown_text)))
@ -1125,10 +997,7 @@ public class MainActivity extends AppCompatActivity
}
}).show();
}
if (options[item].equals(getString(R.string.help_donate)))
{
if (options[item].equals(getString(R.string.help_donate))) {
new AlertDialog.Builder(MainActivity.this)
.setMessage(getString(R.string.donate_text))
.setPositiveButton(getString(R.string.yes),
@ -1146,11 +1015,11 @@ public class MainActivity extends AppCompatActivity
}
}).show();
}
}
}).show();
}
break;
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);

View file

@ -241,7 +241,7 @@ public class PodsActivity extends ActionBarActivity {
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.reload) {
if (id == R.id.action_reload) {
if (Helpers.isOnline(PodsActivity.this)) {
progressDialog.show();
Intent i= new Intent(PodsActivity.this, GetPodsService.class);

View file

@ -43,7 +43,6 @@ import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;
import android.widget.TextView;
import java.io.File;
import java.io.IOException;
@ -333,7 +332,7 @@ public class ShareActivity extends MainActivity {
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.reload) {
if (id == R.id.action_reload) {
if (Helpers.isOnline(ShareActivity.this)) {
webView.reload();
return true;

View file

@ -333,7 +333,7 @@ public class ShareActivity2 extends MainActivity {
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.reload) {
if (id == R.id.action_reload) {
if (Helpers.isOnline(ShareActivity2.this)) {
webView.reload();
return true;

View file

@ -33,7 +33,7 @@ public class Helpers {
return ni != null && ni.isConnectedOrConnecting();
}
public static void hideTopBar(WebView wv) {
public static void hideTopBar(final WebView wv) {
wv.loadUrl("javascript: ( function() {" +
" if(document.getElementById('main_nav')) {" +
" document.getElementById('main_nav').parentNode.removeChild(" +
@ -45,20 +45,29 @@ public class Helpers {
"})();");
}
public static void getNotificationCount(WebView wv) {
public static void getNotificationCount(final WebView wv) {
wv.loadUrl("javascript: ( function() {" +
" if (document.getElementById('notification')) {" +
"if (document.getElementById('notification')) {" +
" var count = document.getElementById('notification').innerHTML;" +
" NotificationCounter.setNotificationCount(count.replace(/(\\r\\n|\\n|\\r)/gm, \"\"));" +
" AndroidBridge.setNotificationCount(count.replace(/(\\r\\n|\\n|\\r)/gm, \"\"));" +
" } else {" +
" NotificationCounter.setNotificationCount('0');" +
" AndroidBridge.setNotificationCount('0');" +
" }" +
" if (document.getElementById('conversation')) {" +
" var count = document.getElementById('conversation').innerHTML;" +
" NotificationCounter.setConversationCount(count.replace(/(\\r\\n|\\n|\\r)/gm, \"\"));" +
" AndroidBridge.setConversationCount(count.replace(/(\\r\\n|\\n|\\r)/gm, \"\"));" +
" } else {" +
" NotificationCounter.setConversationCount('0');" +
" AndroidBridge.setConversationCount('0');" +
" }" +
"})();");
}
public static void getProfileId(final WebView wv) {
wv.loadUrl("javascript: ( function() {" +
" if (typeof gon !== 'undefined' && typeof gon.user !== 'undefined' && typeof gon.user.guid !== 'undefined') {" +
" var guid = gon.user.guid;" +
" AndroidBridge.setProfileId(guid.toString());" +
" } " +
"})();");
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 397 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 496 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 428 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 698 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 565 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 938 B

View file

@ -3,42 +3,49 @@
<group android:checkableBehavior="single">
<item
android:id="@+id/jb_stream"
android:id="@+id/nav_stream"
android:icon="@drawable/jb_stream"
android:title="@string/jb_stream" />
<item
android:id="@+id/jb_followed_tags"
android:id="@+id/nav_profile"
android:icon="@drawable/ic_person_black_24dp"
android:title="@string/jb_profile" />
<!-- TODO followed_tags currently not implemented as single viewable page
(0.5.7.1-paf04894e, 2016 March 20) -->
<item
android:visible="false"
android:id="@+id/nav_followed_tags"
android:icon="@drawable/jb_tag2"
android:title="@string/jb_followed_tags" />
<item
android:id="@+id/jb_aspects"
android:id="@+id/nav_aspects"
android:icon="@drawable/jb_aspects"
android:title="@string/jb_aspects" />
<item
android:id="@+id/jb_activities"
android:id="@+id/nav_activities"
android:icon="@drawable/jb_activities"
android:title="@string/jb_activities" />
<item
android:id="@+id/jb_liked"
android:id="@+id/nav_liked"
android:icon="@drawable/jb_heart"
android:title="@string/jb_liked" />
<item
android:id="@+id/jb_commented"
android:id="@+id/nav_commented"
android:icon="@drawable/jb_commented"
android:title="@string/jb_commented" />
<item
android:id="@+id/jb_mentions"
android:id="@+id/nav_mentions"
android:icon="@drawable/jb_mentions"
android:title="@string/jb_mentions" />
<item
android:id="@+id/jb_public"
android:id="@+id/nav_public"
android:icon="@drawable/jb_aspects"
android:title="@string/jb_public" />
</group>
@ -46,17 +53,17 @@
<item android:title="@string/jb_menu_1">
<menu>
<item
android:id="@+id/jb_settings_view"
android:id="@+id/nav_settings_view"
android:icon="@drawable/jb_settings"
android:title="@string/jb_settings_view" />
<item
android:id="@+id/jb_settings_diaspora"
android:id="@+id/nav_settings_diaspora"
android:icon="@drawable/jb_stream"
android:title="@string/jb_settings_diaspora" />
<item
android:id="@+id/jb_license_help"
android:id="@+id/nav_license_help"
android:icon="@drawable/jb_license"
android:title="@string/jb_help_license" />
</menu>

View file

@ -3,7 +3,7 @@
xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">
<item
android:id="@+id/reload"
android:id="@+id/action_reload"
android:icon="@drawable/ic_sync_white_24dp"
android:title="@string/reload"
android:orderInCategory="109"

View file

@ -3,34 +3,25 @@
xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">
<item
android:id="@+id/notifications"
android:id="@+id/action_notifications"
android:icon="@drawable/ic_bell_outline_white_24dp"
android:title="@string/notifications"
app:showAsAction="always" />
<item
android:id="@+id/conversations"
android:id="@+id/action_conversations"
android:icon="@drawable/ic_message_text_outline_white_24dp"
android:title="@string/messages"
app:showAsAction="always" />
<item
android:id="@+id/help_license"
android:title="@string/jb_help_license"
app:showAsAction="never" />
<item
android:id="@+id/view"
android:title="@string/jb_settings_view"
app:showAsAction="never" />
<item
android:id="@+id/share"
android:id="@+id/action_share"
android:icon="@drawable/ic_share_white_24dp"
android:title="@string/jb_share"
app:showAsAction="never" />
app:showAsAction="ifRoom" />
<item
android:id="@+id/exit"
android:id="@+id/action_exit"
android:icon="@drawable/ic_sync_white_24dp"
android:title="@string/exit_app"
app:showAsAction="never" />

View file

@ -4,7 +4,7 @@
tools:context="ar.com.tristeslostrestigres.diasporanativewebapp.PodsActivity">
<item
android:id="@+id/reload"
android:id="@+id/action_reload"
android:title="@string/reload"
android:icon="@drawable/ic_sync_white_24dp"
android:orderInCategory="100"

View file

@ -29,15 +29,15 @@
<string name="jb_stream">Stream</string>
<string name="jb_notifications">Benachrichtigungen</string>
<string name="jb_conversations">Unterhaltungen</string>
<string name="jb_liked">Gelikete Beiträge</string>
<string name="jb_liked">Gelikte Beiträge</string>
<string name="jb_commented">Kommentierte Beiträge</string>
<string name="jb_contacts">Kontakte</string>
<string name="jb_mentions">Erwähnungen</string>
<string name="jb_activities">Meine Aktivitäten</string>
<string name="jb_activities">Aktivitäten</string>
<string name="jb_followed_tags">Verfolgte Tags</string>
<string name="jb_manage_tags">Tags verwalten</string>
<string name="jb_settings">Persönliche Einstellungen</string>
<string name="jb_aspects">Meine Aspekte</string>
<string name="jb_aspects">Aspekte</string>
<string name="jb_pod">Pod wechseln</string>
<string name="jb_public">Öffentliche Aktivitäten</string>
@ -144,8 +144,8 @@ along with this program. If not, see http://www.gnu.org/licenses.&lt;br> &lt;br
&lt;i>Die Bilder des Startbildschirms können auf Flickr gefunden werden:
https://www.flickr.com/photos/129581906@N06/sets/72157651933980136/with/16594947123.
Sie wurden von \"Lydia\" veröffentlicht und stehen unter der cc by-nc-sa Lizenz.&lt;/i></string>
<string name="fab2_title_person">Suche nach Personen ...</string>
<string name="fab2_title_tag">Suche nach Tags ...</string>
<string name="fab2_title_person">Suche nach Personen </string>
<string name="fab2_title_tag">Suche nach Tags </string>
<string name="donate_1">per Bitcoin</string>
<string name="donate_text">Wenn dir die App gefällt, kannst du dem Entwickler der original \"DiasporaNativeWebApp\"
eine Kleinigkeit spenden:</string>
@ -155,5 +155,6 @@ along with this program. If not, see http://www.gnu.org/licenses.&lt;br> &lt;br
<string name="new_notifications">Ungelesene Benachrichtigung. Lesen?</string>
<string name="help_about">Changelog</string>
<string name="new_post2">Titel und Text</string>
<string name="jb_profile">Profil</string>
</resources>

View file

@ -1,21 +0,0 @@
<resources>
<string name="app_name" translatable="false">Diaspora Native WebApp</string>
<string name="reload">Reload</string>
<string name="title_activity_pods">Select Pod</string>
<string name="filter_hint">Enter pod domain</string>
<string name="exit_app">Exit app</string>
<string name="confirm_url">Confirm pod url</string>
<string name="diaspora" translatable="false">Diaspora</string>
<string name="podlist_source_note">Note: This list is populated with only the secure pods from podupti.me</string>
<string name="valid_pod">Please enter a valid domain name</string>
<string name="podlist_error">Error: Could not retrieve list of pods!</string>
<string name="loading_podlist">Loading pod list ...</string>
<string name="no_internet">Sorry, you must be connected to the Internet to proceed</string>
<string name="confirmation">Confirmation</string>
<string name="confirm_pod">Do you want to use the pod: </string>
<string name="confirm_exit">Are you sure you want to exit?</string>
<string name="yes">YES</string>
<string name="no">NO</string>
<string name="change_pod_warning">This will erase all cookies and session data. Do you really want to change pods?</string>
<string name="new_post">New post</string>
</resources>

View file

@ -10,7 +10,7 @@
<color name="fab_small">#607d8b</color>
<color name="fab_small_pressed">#90a4ae</color>
<color name="label_background">#99212121</color>
<color name="label_background">#BC212121</color>
<color name="label_text">#ffffff</color>
<color name="white">#ffffff</color>

View file

@ -21,7 +21,7 @@
<string name="podlist_source_note">Note: This list is populated with only the secure pods from podupti.me</string>
<string name="valid_pod">Please enter a valid domain name</string>
<string name="podlist_error">Error: Could not retrieve list of pods!</string>
<string name="loading_podlist">Loading pod list ...</string>
<string name="loading_podlist">Loading pod list </string>
<string name="no_internet">Sorry, you must be connected to the Internet to proceed</string>
@ -48,11 +48,11 @@
<string name="jb_commented">Commented</string>
<string name="jb_contacts">Contacts</string>
<string name="jb_mentions">Mentions</string>
<string name="jb_activities">My activity</string>
<string name="jb_activities">Activities</string>
<string name="jb_followed_tags">Followed Hashtags</string>
<string name="jb_manage_tags">Manage Hashtags</string>
<string name="jb_settings">Personal settings</string>
<string name="jb_aspects">My aspects</string>
<string name="jb_aspects">Aspects</string>
<string name="jb_pod">Change pod</string>
<string name="jb_public">Public activities</string>
<string name="jb_settings_view">View settings</string>
@ -71,15 +71,15 @@
<string name="help_donate">Donate</string>
<string name="help_about">Changelog</string>
<string name="toast_screenshot">Taking screenshot ...</string>
<string name="toast_screenshot">Taking screenshot </string>
// Floating Action Buttons - Titles
<string name="fab3_title">Go to top</string>
<string name="fab2_title">Search by tags or persons</string>
<string name="fab2_title_tag">Search for tag ...</string>
<string name="fab2_title_person">Search for person ...</string>
<string name="fab2_title_tag">Search for tag </string>
<string name="fab2_title_person">Search for person </string>
<string name="fab1_title">New message</string>
@ -186,6 +186,7 @@
<string name="large">Large</string>
<string name="huge">Huge</string>
<string name="image">Unable to get image</string>
<string name="jb_profile">Profile</string>
<array name="splash_images">
<item>@drawable/splashscreen1</item>
@ -195,4 +196,7 @@
<item>@drawable/splashscreen5</item>
<item>@drawable/splashscreen6</item>
</array>
<string name="exit_app">Exit app</string>
<string name="diaspora" translatable="false">Diaspora</string>
</resources>

View file

@ -1,15 +0,0 @@
package de.baumann.diaspora;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* To work on unit tests, switch the Test Artifact in the Build Variants view.
*/
public class ExampleUnitTest {
@Test
public void addition_isCorrect() throws Exception {
assertEquals(4, 2 + 2);
}
}