mirror of https://github.com/MISP/misp-bump
remove some animations
remove unused preference remove not fully implemented fab menu remove incomplete german translation remove badge from readmepull/9/head
parent
6d5ea12a84
commit
24b26f5140
|
@ -1,6 +1,4 @@
|
||||||
# MISPbump
|
# MISPbump
|
||||||
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/72e7c12910284125b6971bb9d9c08229)](https://www.codacy.com/app/felixpk/misp-bump?utm_source=github.com&utm_medium=referral&utm_content=MISP/misp-bump&utm_campaign=Badge_Grade)
|
|
||||||
|
|
||||||
Simple and secure synchronisation of MISP instances
|
Simple and secure synchronisation of MISP instances
|
||||||
|
|
||||||
# What is MISPbump?
|
# What is MISPbump?
|
||||||
|
|
|
@ -10,7 +10,6 @@ import android.widget.TextView;
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.appcompat.widget.Toolbar;
|
import androidx.appcompat.widget.Toolbar;
|
||||||
import androidx.core.app.ActivityOptionsCompat;
|
|
||||||
import androidx.core.util.Pair;
|
import androidx.core.util.Pair;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
@ -45,6 +44,11 @@ public class HomeActivity extends AppCompatActivity {
|
||||||
private SyncInfoAdapter syncInfoAdapter;
|
private SyncInfoAdapter syncInfoAdapter;
|
||||||
private TextView emptyRecyclerView;
|
private TextView emptyRecyclerView;
|
||||||
|
|
||||||
|
private OnRecyclerItemClickListener<Integer> onItemClick = (v, index) -> {
|
||||||
|
Intent detailActivity = new Intent(HomeActivity.this, SyncInfoDetailActivity.class);
|
||||||
|
detailActivity.putExtra(SyncInfoDetailActivity.EXTRA_SYNC_INFO_UUID, syncInformationList.get(index).getUuid());
|
||||||
|
startActivity(detailActivity);
|
||||||
|
};
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
@ -106,7 +110,7 @@ public class HomeActivity extends AppCompatActivity {
|
||||||
recyclerView = findViewById(R.id.recyclerView);
|
recyclerView = findViewById(R.id.recyclerView);
|
||||||
recyclerView.setLayoutManager(new LinearLayoutManager(HomeActivity.this));
|
recyclerView.setLayoutManager(new LinearLayoutManager(HomeActivity.this));
|
||||||
syncInfoAdapter = new SyncInfoAdapter(HomeActivity.this);
|
syncInfoAdapter = new SyncInfoAdapter(HomeActivity.this);
|
||||||
syncInfoAdapter.setOnRecyclerPositionClickListener(onRecyclerItemClickListener());
|
syncInfoAdapter.setOnRecyclerPositionClickListener(onItemClick);
|
||||||
recyclerView.setAdapter(syncInfoAdapter);
|
recyclerView.setAdapter(syncInfoAdapter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -261,14 +265,4 @@ public class HomeActivity extends AppCompatActivity {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private OnRecyclerItemClickListener<Integer> onRecyclerItemClickListener() {
|
|
||||||
return (v, index) -> {
|
|
||||||
Intent i = new Intent(HomeActivity.this, SyncInfoDetailActivity.class);
|
|
||||||
i.putExtra(SyncInfoDetailActivity.EXTRA_SYNC_INFO_UUID, syncInformationList.get(index).getUuid());
|
|
||||||
|
|
||||||
ActivityOptionsCompat options = ActivityOptionsCompat.makeClipRevealAnimation(v.findViewById(R.id.rootLayout), (int) v.getX(), (int) v.getY(), v.getWidth(), v.getHeight());
|
|
||||||
startActivity(i, options.toBundle());
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,10 +13,8 @@ import androidx.preference.Preference;
|
||||||
import androidx.preference.PreferenceCategory;
|
import androidx.preference.PreferenceCategory;
|
||||||
import androidx.preference.PreferenceFragmentCompat;
|
import androidx.preference.PreferenceFragmentCompat;
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
import androidx.preference.SwitchPreference;
|
|
||||||
|
|
||||||
import lu.circl.mispbump.R;
|
import lu.circl.mispbump.R;
|
||||||
import lu.circl.mispbump.auxiliary.PreferenceManager;
|
|
||||||
|
|
||||||
|
|
||||||
public class PreferenceActivity extends AppCompatActivity {
|
public class PreferenceActivity extends AppCompatActivity {
|
||||||
|
@ -42,11 +40,9 @@ public class PreferenceActivity extends AppCompatActivity {
|
||||||
public static class PreferencesFragment extends PreferenceFragmentCompat {
|
public static class PreferencesFragment extends PreferenceFragmentCompat {
|
||||||
|
|
||||||
private Context context;
|
private Context context;
|
||||||
private PreferenceManager preferenceManager;
|
|
||||||
|
|
||||||
PreferencesFragment(Context context) {
|
PreferencesFragment(Context context) {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
preferenceManager = PreferenceManager.getInstance(context);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -56,21 +52,21 @@ public class PreferenceActivity extends AppCompatActivity {
|
||||||
|
|
||||||
// General
|
// General
|
||||||
|
|
||||||
PreferenceCategory generalCategory = new PreferenceCategory(context);
|
// PreferenceCategory generalCategory = new PreferenceCategory(context);
|
||||||
generalCategory.setTitle("General");
|
// generalCategory.setTitle("General");
|
||||||
getPreferenceScreen().addPreference(generalCategory);
|
// getPreferenceScreen().addPreference(generalCategory);
|
||||||
|
//
|
||||||
SwitchPreference fetchOnlyLocalSyncs = new SwitchPreference(context);
|
// SwitchPreference fetchOnlyLocalSyncs = new SwitchPreference(context);
|
||||||
fetchOnlyLocalSyncs.setTitle("Display local syncs only");
|
// fetchOnlyLocalSyncs.setTitle("Display local syncs only");
|
||||||
fetchOnlyLocalSyncs.setSummaryOn("Only those syncs that were made with MISPbump are displayed.");
|
// fetchOnlyLocalSyncs.setSummaryOn("Only those syncs that were made with MISPbump are displayed.");
|
||||||
fetchOnlyLocalSyncs.setSummaryOff("Existing syncs from your MISP instance are fetched (experimental)");
|
// fetchOnlyLocalSyncs.setSummaryOff("Existing syncs from your MISP instance are fetched (experimental)");
|
||||||
fetchOnlyLocalSyncs.setChecked(preferenceManager.getShowLocalSyncsOnly());
|
// fetchOnlyLocalSyncs.setChecked(preferenceManager.getShowLocalSyncsOnly());
|
||||||
fetchOnlyLocalSyncs.setOnPreferenceChangeListener((preference, newValue) -> {
|
// fetchOnlyLocalSyncs.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||||
preferenceManager.setShowLocalSyncsOnly((boolean) newValue);
|
// preferenceManager.setShowLocalSyncsOnly((boolean) newValue);
|
||||||
return true;
|
// return true;
|
||||||
});
|
// });
|
||||||
|
//
|
||||||
generalCategory.addPreference(fetchOnlyLocalSyncs);
|
// generalCategory.addPreference(fetchOnlyLocalSyncs);
|
||||||
|
|
||||||
// App Information
|
// App Information
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,9 @@
|
||||||
package lu.circl.mispbump.activities;
|
package lu.circl.mispbump.activities;
|
||||||
|
|
||||||
|
|
||||||
import android.animation.Animator;
|
|
||||||
import android.animation.ValueAnimator;
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.graphics.drawable.AnimatedVectorDrawable;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.animation.DecelerateInterpolator;
|
|
||||||
import android.widget.LinearLayout;
|
|
||||||
import android.widget.TextView;
|
|
||||||
|
|
||||||
import androidx.appcompat.app.ActionBar;
|
import androidx.appcompat.app.ActionBar;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
@ -34,8 +28,6 @@ public class SyncInfoDetailActivity extends AppCompatActivity {
|
||||||
private PreferenceManager preferenceManager;
|
private PreferenceManager preferenceManager;
|
||||||
private SyncInformation syncInformation;
|
private SyncInformation syncInformation;
|
||||||
|
|
||||||
private boolean fabMenuExpanded;
|
|
||||||
|
|
||||||
private View.OnClickListener onUploadClicked = v -> {
|
private View.OnClickListener onUploadClicked = v -> {
|
||||||
preferenceManager.addSyncInformation(syncInformation);
|
preferenceManager.addSyncInformation(syncInformation);
|
||||||
Intent upload = new Intent(SyncInfoDetailActivity.this, UploadActivity.class);
|
Intent upload = new Intent(SyncInfoDetailActivity.this, UploadActivity.class);
|
||||||
|
@ -43,14 +35,11 @@ public class SyncInfoDetailActivity extends AppCompatActivity {
|
||||||
startActivity(upload);
|
startActivity(upload);
|
||||||
};
|
};
|
||||||
|
|
||||||
private View.OnClickListener onDownloadClicked = v -> {
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_sync_info_detail_v2);
|
setContentView(R.layout.activity_sync_info_detail);
|
||||||
|
|
||||||
preferenceManager = PreferenceManager.getInstance(SyncInfoDetailActivity.this);
|
preferenceManager = PreferenceManager.getInstance(SyncInfoDetailActivity.this);
|
||||||
syncInformation = preferenceManager.getSyncInformation(getExtraUuid());
|
syncInformation = preferenceManager.getSyncInformation(getExtraUuid());
|
||||||
|
@ -60,7 +49,7 @@ public class SyncInfoDetailActivity extends AppCompatActivity {
|
||||||
}
|
}
|
||||||
|
|
||||||
initToolbar();
|
initToolbar();
|
||||||
initFabMenu();
|
initViews();
|
||||||
populateContent();
|
populateContent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,132 +74,9 @@ public class SyncInfoDetailActivity extends AppCompatActivity {
|
||||||
ab.setDisplayHomeAsUpEnabled(true);
|
ab.setDisplayHomeAsUpEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initFabMenu() {
|
private void initViews() {
|
||||||
FloatingActionButton fab = findViewById(R.id.fab_main);
|
FloatingActionButton uploadFab = findViewById(R.id.fab_main);
|
||||||
FloatingActionButton fabUpload = findViewById(R.id.fab_upload);
|
uploadFab.setOnClickListener(onUploadClicked);
|
||||||
FloatingActionButton fabDownload = findViewById(R.id.fab_download);
|
|
||||||
|
|
||||||
LinearLayout uploadLayout = findViewById(R.id.layout_upload);
|
|
||||||
LinearLayout downloadLayout = findViewById(R.id.layout_download);
|
|
||||||
|
|
||||||
TextView uploadText = findViewById(R.id.fab_upload_text);
|
|
||||||
TextView downloadText = findViewById(R.id.fab_download_text);
|
|
||||||
|
|
||||||
View menuBackground = findViewById(R.id.menu_background);
|
|
||||||
|
|
||||||
uploadLayout.setVisibility(View.GONE);
|
|
||||||
downloadLayout.setVisibility(View.GONE);
|
|
||||||
|
|
||||||
int animationSpeed = 200;
|
|
||||||
|
|
||||||
ValueAnimator openAnimation = ValueAnimator.ofFloat(0f, 1f);
|
|
||||||
openAnimation.setDuration(animationSpeed);
|
|
||||||
openAnimation.setInterpolator(new DecelerateInterpolator());
|
|
||||||
openAnimation.addUpdateListener(updateAnimation -> {
|
|
||||||
float x = (float) updateAnimation.getAnimatedValue();
|
|
||||||
|
|
||||||
fabUpload.setAlpha(x);
|
|
||||||
fabUpload.setTranslationY((1 - x) * 50);
|
|
||||||
uploadText.setAlpha(x);
|
|
||||||
uploadText.setTranslationX((1 - x) * -200);
|
|
||||||
|
|
||||||
fabDownload.setAlpha(x);
|
|
||||||
fabDownload.setTranslationY((1 - x) * 50);
|
|
||||||
downloadText.setAlpha(x);
|
|
||||||
downloadText.setTranslationX((1 - x) * -200);
|
|
||||||
|
|
||||||
menuBackground.setAlpha(x * 0.9f);
|
|
||||||
});
|
|
||||||
openAnimation.addListener(new Animator.AnimatorListener() {
|
|
||||||
@Override
|
|
||||||
public void onAnimationStart(Animator animator) {
|
|
||||||
uploadLayout.setVisibility(View.VISIBLE);
|
|
||||||
downloadLayout.setVisibility(View.VISIBLE);
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void onAnimationEnd(Animator animator) {
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void onAnimationCancel(Animator animator) {
|
|
||||||
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void onAnimationRepeat(Animator animator) {
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
ValueAnimator closeAnimation = ValueAnimator.ofFloat(1f, 0f);
|
|
||||||
closeAnimation.setDuration(animationSpeed);
|
|
||||||
closeAnimation.setInterpolator(new DecelerateInterpolator());
|
|
||||||
closeAnimation.addUpdateListener(updateAnimation -> {
|
|
||||||
float x = (float) updateAnimation.getAnimatedValue();
|
|
||||||
|
|
||||||
fabUpload.setAlpha(x);
|
|
||||||
fabUpload.setTranslationY((1 - x) * 50);
|
|
||||||
uploadText.setAlpha(x);
|
|
||||||
uploadText.setTranslationX((1 - x) * -200);
|
|
||||||
|
|
||||||
fabDownload.setAlpha(x);
|
|
||||||
fabDownload.setTranslationY((1 - x) * 50);
|
|
||||||
downloadText.setAlpha(x);
|
|
||||||
downloadText.setTranslationX((1 - x) * -200);
|
|
||||||
|
|
||||||
menuBackground.setAlpha(x * 0.9f);
|
|
||||||
});
|
|
||||||
closeAnimation.addListener(new Animator.AnimatorListener() {
|
|
||||||
@Override
|
|
||||||
public void onAnimationStart(Animator animator) {
|
|
||||||
uploadLayout.setVisibility(View.VISIBLE);
|
|
||||||
downloadLayout.setVisibility(View.VISIBLE);
|
|
||||||
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void onAnimationEnd(Animator animator) {
|
|
||||||
uploadLayout.setVisibility(View.GONE);
|
|
||||||
downloadLayout.setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void onAnimationCancel(Animator animator) {
|
|
||||||
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void onAnimationRepeat(Animator animator) {
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
AnimatedVectorDrawable open = (AnimatedVectorDrawable) getDrawable(R.drawable.animated_arrow_cloud_down);
|
|
||||||
AnimatedVectorDrawable close = (AnimatedVectorDrawable) getDrawable(R.drawable.animated_arrow_down_cloud);
|
|
||||||
|
|
||||||
View.OnClickListener expandCollapseClick = view -> {
|
|
||||||
if (fabMenuExpanded) {
|
|
||||||
menuBackground.setClickable(false);
|
|
||||||
|
|
||||||
fab.setImageDrawable(close);
|
|
||||||
assert close != null;
|
|
||||||
close.start();
|
|
||||||
|
|
||||||
closeAnimation.start();
|
|
||||||
fabMenuExpanded = false;
|
|
||||||
} else {
|
|
||||||
menuBackground.setClickable(true);
|
|
||||||
|
|
||||||
fab.setImageDrawable(open);
|
|
||||||
assert open != null;
|
|
||||||
open.start();
|
|
||||||
|
|
||||||
openAnimation.start();
|
|
||||||
fabMenuExpanded = true;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
menuBackground.setOnClickListener(expandCollapseClick);
|
|
||||||
menuBackground.setClickable(false);
|
|
||||||
fab.setOnClickListener(expandCollapseClick);
|
|
||||||
|
|
||||||
fabUpload.setOnClickListener(onUploadClicked);
|
|
||||||
fabDownload.setOnClickListener(onDownloadClicked);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void populateContent() {
|
private void populateContent() {
|
||||||
|
|
|
@ -129,54 +129,6 @@
|
||||||
app:offText="@string/settings_cache_off"
|
app:offText="@string/settings_cache_off"
|
||||||
app:onText="@string/settings_cache_on" />
|
app:onText="@string/settings_cache_on" />
|
||||||
|
|
||||||
<!-- <androidx.constraintlayout.widget.ConstraintLayout-->
|
|
||||||
<!-- android:layout_width="match_parent"-->
|
|
||||||
<!-- android:layout_height="match_parent">-->
|
|
||||||
|
|
||||||
<!-- <CheckBox-->
|
|
||||||
<!-- android:id="@+id/checkbox_self_signed"-->
|
|
||||||
<!-- android:layout_width="wrap_content"-->
|
|
||||||
<!-- android:layout_height="wrap_content"-->
|
|
||||||
<!-- android:layout_marginStart="16dp"-->
|
|
||||||
<!-- android:layout_marginTop="16dp"-->
|
|
||||||
<!-- android:text="@string/settings_self_signed_title"-->
|
|
||||||
<!-- app:layout_constraintStart_toStartOf="parent"-->
|
|
||||||
<!-- app:layout_constraintTop_toTopOf="parent" />-->
|
|
||||||
|
|
||||||
<!-- <CheckBox-->
|
|
||||||
<!-- android:id="@+id/checkbox_push"-->
|
|
||||||
<!-- android:layout_width="wrap_content"-->
|
|
||||||
<!-- android:layout_height="wrap_content"-->
|
|
||||||
<!-- android:layout_marginStart="16dp"-->
|
|
||||||
<!-- android:layout_marginTop="8dp"-->
|
|
||||||
<!-- android:text="@string/settings_push_title"-->
|
|
||||||
<!-- app:layout_constraintHorizontal_chainStyle="packed"-->
|
|
||||||
<!-- app:layout_constraintStart_toStartOf="parent"-->
|
|
||||||
<!-- app:layout_constraintTop_toBottomOf="@id/checkbox_self_signed" />-->
|
|
||||||
|
|
||||||
<!-- <CheckBox-->
|
|
||||||
<!-- android:id="@+id/checkbox_pull"-->
|
|
||||||
<!-- android:layout_width="wrap_content"-->
|
|
||||||
<!-- android:layout_height="wrap_content"-->
|
|
||||||
<!-- android:layout_marginStart="32dp"-->
|
|
||||||
<!-- android:layout_marginTop="8dp"-->
|
|
||||||
<!-- android:text="@string/settings_pull_title"-->
|
|
||||||
<!-- app:layout_constraintStart_toEndOf="@+id/checkbox_push"-->
|
|
||||||
<!-- app:layout_constraintTop_toBottomOf="@id/checkbox_self_signed" />-->
|
|
||||||
|
|
||||||
<!-- <CheckBox-->
|
|
||||||
<!-- android:id="@+id/checkbox_cache"-->
|
|
||||||
<!-- android:layout_width="wrap_content"-->
|
|
||||||
<!-- android:layout_height="wrap_content"-->
|
|
||||||
<!-- android:layout_marginStart="16dp"-->
|
|
||||||
<!-- android:layout_marginTop="8dp"-->
|
|
||||||
<!-- android:layout_marginBottom="16dp"-->
|
|
||||||
<!-- android:text="@string/settings_cache_title"-->
|
|
||||||
<!-- app:layout_constraintTop_toBottomOf="@id/checkbox_push"-->
|
|
||||||
<!-- app:layout_constraintStart_toStartOf="parent"-->
|
|
||||||
<!-- app:layout_constraintBottom_toBottomOf="parent" />-->
|
|
||||||
<!-- </androidx.constraintlayout.widget.ConstraintLayout>-->
|
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:background="@color/dividerColor"
|
android:background="@color/dividerColor"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
@ -217,108 +169,13 @@
|
||||||
|
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||||
android:layout_gravity="bottom|end"
|
android:id="@+id/fab_main"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="wrap_content"
|
||||||
|
android:src="@drawable/ic_cloud_upload"
|
||||||
<FrameLayout
|
android:tint="@color/white"
|
||||||
android:id="@+id/menu_background"
|
android:layout_margin="16dp"
|
||||||
android:layout_width="match_parent"
|
android:layout_gravity="bottom|end" />
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:alpha="0"
|
|
||||||
android:background="@color/white"
|
|
||||||
android:clickable="false"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
|
||||||
|
|
||||||
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
|
||||||
android:id="@+id/fab_main"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:src="@drawable/animated_arrow_cloud_down"
|
|
||||||
android:tint="@color/white"
|
|
||||||
android:layout_margin="16dp"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent" />
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/layout_upload"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginBottom="12dp"
|
|
||||||
android:clipToPadding="false"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:padding="24dp"
|
|
||||||
android:visibility="visible"
|
|
||||||
app:layout_constraintBottom_toTopOf="@id/fab_main"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent">
|
|
||||||
|
|
||||||
<View
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="match_parent" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/fab_upload_text"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:layout_marginEnd="16dp"
|
|
||||||
android:background="@drawable/tooltip_background"
|
|
||||||
android:backgroundTint="@color/black_70"
|
|
||||||
android:padding="8dp"
|
|
||||||
android:text="@string/upload_changes"
|
|
||||||
android:textColor="@color/white" />
|
|
||||||
|
|
||||||
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
|
||||||
android:id="@+id/fab_upload"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:src="@drawable/ic_cloud_upload"
|
|
||||||
app:fabSize="mini" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/layout_download"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:clipToPadding="false"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:padding="24dp"
|
|
||||||
android:visibility="visible"
|
|
||||||
app:layout_constraintBottom_toTopOf="@id/layout_upload"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent">
|
|
||||||
|
|
||||||
<View
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="match_parent" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/fab_download_text"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:layout_marginEnd="16dp"
|
|
||||||
android:background="@drawable/tooltip_background"
|
|
||||||
android:backgroundTint="@color/black_70"
|
|
||||||
android:padding="8dp"
|
|
||||||
android:text="@string/download_changes"
|
|
||||||
android:textColor="@color/white" />
|
|
||||||
|
|
||||||
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
|
||||||
android:id="@+id/fab_download"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:src="@drawable/ic_cloud_download"
|
|
||||||
app:fabSize="mini" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
||||||
|
|
||||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
|
@ -1,56 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<string name="login">Anmelden</string>
|
|
||||||
<string name="logout">Abmelden</string>
|
|
||||||
<string name="menu_login_help_label">Hilfe</string>
|
|
||||||
<string name="misp_automation_hint">MISP Automatisierungs-Schlüssel</string>
|
|
||||||
<string name="no_information">Keine Informationen</string>
|
|
||||||
<string name="save_automation_key_hint">Automatisierungs-Schlüssel speichern</string>
|
|
||||||
<string name="login_help_text"><b>MISP Server URL</b>\nDie URL unter der Ihre MISP Instanz erreichbar ist.\n\n<b>MISP Automatisierungs Schlüssel</b></string>
|
|
||||||
<string name="qr_code">QR code</string>
|
|
||||||
<string name="sync">Synchronisation</string>
|
|
||||||
<string name="no_syncs_hint">Sie haben noch keine MISP Instanzen verknüpft</string>
|
|
||||||
<string name="activity_exchange_scan_partner_qr_hint">Scannen den QR code ihres Partners</string>
|
|
||||||
<string name="activity_exchange_continue_if_scanned">Fahren sie fort, sobald dieser QR Code gescannt wurde</string>
|
|
||||||
<string name="button_continue">Weiter</string>
|
|
||||||
<string name="button_prev">Zurück</string>
|
|
||||||
<string name="nationality">Nationalität</string>
|
|
||||||
<string name="sector">Sektor</string>
|
|
||||||
<string name="description">Beschreibung</string>
|
|
||||||
<string name="settings">Einstellungen</string>
|
|
||||||
<string name="credentials">Zugangsdaten</string>
|
|
||||||
<string name="authkey">Authentifizierungsschlüssel</string>
|
|
||||||
<string name="password">Passwort</string>
|
|
||||||
<string name="fragment_upload_settings_title">Diese Organisation soll die folgenden Rechte erhalten</string>
|
|
||||||
<string name="settings_self_signed_title">Selbstsignierte Zertifikate erlauben</string>
|
|
||||||
<string name="settings_self_signed_on">Zertifikate von unbekannten CA\'s werden akzeptiert (nicht empfohlen)</string>
|
|
||||||
<string name="settings_self_signed_off">Nur Zertifikate von bekannten CA\'s werden akzeptiert</string>
|
|
||||||
<string name="settings_push_off">Ereignisse und deren Attribute können nicht hochgeladen werden</string>
|
|
||||||
<string name="settings_push_on">Ereignisse und deren Attribute können hochgeladen werden</string>
|
|
||||||
<string name="settings_pull_off">Ereignisse und deren Attribute können nicht heruntergeladen werden</string>
|
|
||||||
<string name="settings_pull_on">Ereignisse und deren Attribute können heruntergeladen werden</string>
|
|
||||||
<string name="settings_cache_off">Ereignisse und deren Attribute werden nicht zwischengespeichert</string>
|
|
||||||
<string name="settings_cache_on">Ereignisse und deren Attribute werden zwischengespeichert</string>
|
|
||||||
<string name="settings_cache_title">Zwischenspeichern</string>
|
|
||||||
<string name="settings_pull_title">Herunterladen</string>
|
|
||||||
<string name="settings_push_title">Hochladen</string>
|
|
||||||
<string name="upload">Hochladen</string>
|
|
||||||
<string name="upload_action_available">MISP Instanz erreichbar</string>
|
|
||||||
<string name="upload_action_add_org">Organisation hinzufügen</string>
|
|
||||||
<string name="upload_action_add_server">Server hinzufügen</string>
|
|
||||||
<string name="upload_action_add_user">Benutzer hinzufügen</string>
|
|
||||||
<string name="public_key">Öffentlicher Schlüssel</string>
|
|
||||||
<string name="scan_qr_hint">Scannen Sie den QR code ihres Partners</string>
|
|
||||||
<string name="public_key_received_hint">Öffentlicher Schlüssel empfangen</string>
|
|
||||||
<string name="sync_info_received_hint">Synchronisations-Informationen empfangen</string>
|
|
||||||
<string name="sync_information">Synchronisations-Informationen</string>
|
|
||||||
<string name="preference_delete_all_syncs">Alle Synchronisierungen löschen</string>
|
|
||||||
<string name="preference_delete_all_syncs_summary">Die Synchronisierungen werden nur lokal gelöscht</string>
|
|
||||||
<string name="preference_category_general">Allgemein</string>
|
|
||||||
<string name="preference_github_summary">Besuchen Sie das Github Projekt</string>
|
|
||||||
<string name="preference_category_information">App Informationen</string>
|
|
||||||
<string name="sync_details_activity_label">Synchronisations Details</string>
|
|
||||||
<string name="information">Informationen</string>
|
|
||||||
<string name="upload_changes">Änderungen hochladen</string>
|
|
||||||
<string name="download_changes">Änderungen herunterladen</string>
|
|
||||||
</resources>
|
|
|
@ -12,8 +12,6 @@
|
||||||
<string name="qr_code">QR code</string>
|
<string name="qr_code">QR code</string>
|
||||||
<string name="sync">Synchronization</string>
|
<string name="sync">Synchronization</string>
|
||||||
<string name="no_syncs_hint">You have not synced any MISP instances yet</string>
|
<string name="no_syncs_hint">You have not synced any MISP instances yet</string>
|
||||||
|
|
||||||
<!-- TODO: Remove or change this placeholder text -->
|
|
||||||
<string name="activity_exchange_scan_partner_qr_hint">Scan your partners QR code</string>
|
<string name="activity_exchange_scan_partner_qr_hint">Scan your partners QR code</string>
|
||||||
<string name="activity_exchange_continue_if_scanned">Continue if your partner also scanned this QR code</string>
|
<string name="activity_exchange_continue_if_scanned">Continue if your partner also scanned this QR code</string>
|
||||||
<string name="button_continue">next</string>
|
<string name="button_continue">next</string>
|
||||||
|
|
Loading…
Reference in New Issue