diff --git a/.gitignore b/.gitignore
index 6d3df34..5edb4ee 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,64 +1,10 @@
-# Built application files
-*.apk
-*.ap_
-
-# Files for the ART/Dalvik VM
-*.dex
-
-# Java class files
-*.class
-
-# Generated files
-bin/
-gen/
-out/
-
-# Gradle files
-.gradle/
-build/
-
-# Local configuration file (sdk path, etc)
-local.properties
-
-# Proguard folder generated by Eclipse
-proguard/
-
-# Log Files
-*.log
-
-# Android Studio Navigation editor temp files
-.navigation/
-
-# Android Studio captures folder
-captures/
-
-# IntelliJ
*.iml
-.idea/workspace.xml
-.idea/tasks.xml
-.idea/gradle.xml
-.idea/dictionaries
-.idea/libraries
-.idea/caches
-
-# Keystore files
-# Uncomment the following line if you do not want to check your keystore files in.
-#*.jks
-
-# External native build folder generated in Android Studio 2.2 and later
+.gradle
+/local.properties
+/.idea/libraries
+/.idea/modules.xml
+/.idea/workspace.xml
+.DS_Store
+/build
+/captures
.externalNativeBuild
-
-# Google Services (e.g. APIs or Firebase)
-google-services.json
-
-# Freeline
-freeline.py
-freeline/
-freeline_project_description.json
-
-# fastlane
-fastlane/report.xml
-fastlane/Preview.html
-fastlane/screenshots
-fastlane/test_output
-fastlane/readme.md
diff --git a/.idea/assetWizardSettings.xml b/.idea/assetWizardSettings.xml
index ca00af2..9394d23 100644
--- a/.idea/assetWizardSettings.xml
+++ b/.idea/assetWizardSettings.xml
@@ -3,37 +3,22 @@
-
+
diff --git a/.idea/modules.xml b/.idea/modules.xml
index 80ed164..7122c9b 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -2,8 +2,8 @@
+
-
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 94a25f7..0000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index c7b0f66..085f2a4 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -3,7 +3,7 @@ apply plugin: 'com.android.application'
android {
compileSdkVersion 27
defaultConfig {
- applicationId "de.korrelator.overview.mispauthv2"
+ applicationId "de.overview.wg.its.misp_authentificator"
minSdkVersion 21
targetSdkVersion 27
versionCode 1
@@ -23,10 +23,10 @@ dependencies {
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
testImplementation 'junit:junit:4.12'
- androidTestImplementation 'com.android.support.test:runner:1.0.1'
- androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
-
+ androidTestImplementation 'com.android.support.test:runner:1.0.2'
+ androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
+ implementation 'com.android.support:cardview-v7:27.1.1'
+ implementation 'com.android.support:design:27.1.1'
implementation 'com.android.volley:volley:1.1.0'
- implementation 'com.github.kenglxn.QRGen:android:2.4.0'
}
diff --git a/app/src/androidTest/java/de/korrelator/overview/mispauthv2/ExampleInstrumentedTest.java b/app/src/androidTest/java/de/korrelator/overview/mispauthv2/ExampleInstrumentedTest.java
deleted file mode 100644
index e729435..0000000
--- a/app/src/androidTest/java/de/korrelator/overview/mispauthv2/ExampleInstrumentedTest.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package de.korrelator.overview.mispauthv2;
-
-import android.content.Context;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.runner.AndroidJUnit4;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import static org.junit.Assert.*;
-
-/**
- * Instrumented test, which will execute on an Android device.
- *
- * @see Testing documentation
- */
-@RunWith(AndroidJUnit4.class)
-public class ExampleInstrumentedTest {
- @Test
- public void useAppContext() {
- // Context of the app under test.
- Context appContext = InstrumentationRegistry.getTargetContext();
-
- assertEquals("de.korrelator.overview.mispauthv2", appContext.getPackageName());
- }
-}
diff --git a/app/src/androidTest/java/de/korrelator/overview/mispauth/ExampleInstrumentedTest.java b/app/src/androidTest/java/de/overview/wg/its/misp_authentificator/ExampleInstrumentedTest.java
similarity index 81%
rename from app/src/androidTest/java/de/korrelator/overview/mispauth/ExampleInstrumentedTest.java
rename to app/src/androidTest/java/de/overview/wg/its/misp_authentificator/ExampleInstrumentedTest.java
index b341e66..b44b544 100644
--- a/app/src/androidTest/java/de/korrelator/overview/mispauth/ExampleInstrumentedTest.java
+++ b/app/src/androidTest/java/de/overview/wg/its/misp_authentificator/ExampleInstrumentedTest.java
@@ -1,4 +1,4 @@
-package de.korrelator.overview.mispauth;
+package de.overview.wg.its.misp_authentificator;
import android.content.Context;
import android.support.test.InstrumentationRegistry;
@@ -21,6 +21,6 @@ public class ExampleInstrumentedTest {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getTargetContext();
- assertEquals("de.korrelator.overview.mispauth", appContext.getPackageName());
+ assertEquals("de.overview.wg.its.misp_authentificator", appContext.getPackageName());
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index ed16b17..17bda11 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,8 +1,8 @@
+ package="de.overview.wg.its.misp_authentificator">
-
+
-
+
-
+
+
\ No newline at end of file
diff --git a/app/src/main/java/de/korrelator/overview/mispauth/AppCompatPreferenceActivity.java b/app/src/main/java/de/korrelator/overview/mispauth/AppCompatPreferenceActivity.java
deleted file mode 100644
index 538423a..0000000
--- a/app/src/main/java/de/korrelator/overview/mispauth/AppCompatPreferenceActivity.java
+++ /dev/null
@@ -1,109 +0,0 @@
-package de.korrelator.overview.mispauth;
-
-import android.content.res.Configuration;
-import android.os.Bundle;
-import android.preference.PreferenceActivity;
-import android.support.annotation.LayoutRes;
-import android.support.annotation.Nullable;
-import android.support.v7.app.ActionBar;
-import android.support.v7.app.AppCompatDelegate;
-import android.support.v7.widget.Toolbar;
-import android.view.MenuInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-/**
- * A {@link android.preference.PreferenceActivity} which implements and proxies the necessary calls
- * to be used with AppCompat.
- */
-public abstract class AppCompatPreferenceActivity extends PreferenceActivity {
-
- private AppCompatDelegate mDelegate;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- getDelegate().installViewFactory();
- getDelegate().onCreate(savedInstanceState);
- super.onCreate(savedInstanceState);
- }
-
- @Override
- protected void onPostCreate(Bundle savedInstanceState) {
- super.onPostCreate(savedInstanceState);
- getDelegate().onPostCreate(savedInstanceState);
- }
-
- public ActionBar getSupportActionBar() {
- return getDelegate().getSupportActionBar();
- }
-
- public void setSupportActionBar(@Nullable Toolbar toolbar) {
- getDelegate().setSupportActionBar(toolbar);
- }
-
- @Override
- public MenuInflater getMenuInflater() {
- return getDelegate().getMenuInflater();
- }
-
- @Override
- public void setContentView(@LayoutRes int layoutResID) {
- getDelegate().setContentView(layoutResID);
- }
-
- @Override
- public void setContentView(View view) {
- getDelegate().setContentView(view);
- }
-
- @Override
- public void setContentView(View view, ViewGroup.LayoutParams params) {
- getDelegate().setContentView(view, params);
- }
-
- @Override
- public void addContentView(View view, ViewGroup.LayoutParams params) {
- getDelegate().addContentView(view, params);
- }
-
- @Override
- protected void onPostResume() {
- super.onPostResume();
- getDelegate().onPostResume();
- }
-
- @Override
- protected void onTitleChanged(CharSequence title, int color) {
- super.onTitleChanged(title, color);
- getDelegate().setTitle(title);
- }
-
- @Override
- public void onConfigurationChanged(Configuration newConfig) {
- super.onConfigurationChanged(newConfig);
- getDelegate().onConfigurationChanged(newConfig);
- }
-
- @Override
- protected void onStop() {
- super.onStop();
- getDelegate().onStop();
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- getDelegate().onDestroy();
- }
-
- public void invalidateOptionsMenu() {
- getDelegate().invalidateOptionsMenu();
- }
-
- private AppCompatDelegate getDelegate() {
- if (mDelegate == null) {
- mDelegate = AppCompatDelegate.create(this, null);
- }
- return mDelegate;
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/de/korrelator/overview/mispauth/GenerateQrActivity.java b/app/src/main/java/de/korrelator/overview/mispauth/GenerateQrActivity.java
deleted file mode 100644
index 8ca1b04..0000000
--- a/app/src/main/java/de/korrelator/overview/mispauth/GenerateQrActivity.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package de.korrelator.overview.mispauth;
-
-import android.graphics.Bitmap;
-import android.graphics.Point;
-import android.support.v7.app.AppCompatActivity;
-import android.os.Bundle;
-import android.view.Display;
-import android.widget.ImageView;
-
-import net.glxn.qrgen.android.QRCode;
-
-import java.util.UUID;
-
-public class GenerateQrActivity extends AppCompatActivity {
-
- private Point displaySize;
- private ImageView qrImageView;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- getSupportActionBar().setHomeButtonEnabled(true);
-
- setContentView(R.layout.activity_generate_qr);
- qrImageView = findViewById(R.id.image_view_qr);
-
-
- Display display = getWindowManager().getDefaultDisplay();
- displaySize = new Point();
- display.getSize(displaySize);
-
- DisplayQR("https://www.google.de \n OrgName \n " + UUID.randomUUID());
- }
-
- public void DisplayQR(String message){
-
- Bitmap bitmap = QRCode.from(message)
- .withSize(displaySize.x, displaySize.y)
- .withColor(0xFF000000, 0x00000000)
- .bitmap();
-
- qrImageView.setImageBitmap(bitmap);
- }
-}
diff --git a/app/src/main/java/de/korrelator/overview/mispauth/MainActivity.java b/app/src/main/java/de/korrelator/overview/mispauth/MainActivity.java
deleted file mode 100644
index 65caecf..0000000
--- a/app/src/main/java/de/korrelator/overview/mispauth/MainActivity.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package de.korrelator.overview.mispauth;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.support.v7.app.AppCompatActivity;
-import android.os.Bundle;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-import android.widget.Button;
-import android.widget.TextView;
-
-public class MainActivity extends AppCompatActivity {
-
- private static final int QR_REQUEST_CODE = 123;
- private TextView qrResult;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
-
- qrResult = findViewById(R.id.text_view_qr_result);
-
- Button scanButton = findViewById(R.id.button_scan);
- scanButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- startCameraIntent();
- }
- });
-
- Button generateButton = findViewById(R.id.button_generate);
- generateButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- startQrIntent();
- }
- });
- }
-
-
- private void startCameraIntent(){
- Intent intent = new Intent(this, ReadQrActivity.class);
- startActivityForResult(intent, QR_REQUEST_CODE);
- }
-
-
- private void startQrIntent(){
- Intent intent = new Intent(this, GenerateQrActivity.class);
- startActivity(intent);
- }
-
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
-
- if (requestCode == QR_REQUEST_CODE) {
- if(resultCode == Activity.RESULT_OK){
- String result = data.getStringExtra("result");
- qrResult.setText(result);
- }
-
- if (resultCode == Activity.RESULT_CANCELED) {
- qrResult.setText("NO QR FOUND");
- }
- }
- }
-
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- getMenuInflater().inflate(R.menu.menu_main, menu);
- return true;
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- int id = item.getItemId();
-
- if (id == R.id.action_settings) {
- startActivity(new Intent(this, SettingsActivity.class));
- return true;
- }
-
- return super.onOptionsItemSelected(item);
- }
-}
diff --git a/app/src/main/java/de/korrelator/overview/mispauth/ReadQrActivity.java b/app/src/main/java/de/korrelator/overview/mispauth/ReadQrActivity.java
deleted file mode 100644
index f298a5c..0000000
--- a/app/src/main/java/de/korrelator/overview/mispauth/ReadQrActivity.java
+++ /dev/null
@@ -1,346 +0,0 @@
-package de.korrelator.overview.mispauth;
-
-import android.Manifest;
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.graphics.Bitmap;
-import android.graphics.ImageFormat;
-import android.graphics.SurfaceTexture;
-import android.hardware.camera2.CameraAccessException;
-import android.hardware.camera2.CameraCaptureSession;
-import android.hardware.camera2.CameraCharacteristics;
-import android.hardware.camera2.CameraDevice;
-import android.hardware.camera2.CameraManager;
-import android.hardware.camera2.CaptureRequest;
-import android.hardware.camera2.params.StreamConfigurationMap;
-import android.media.Image;
-import android.media.ImageReader;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.HandlerThread;
-import android.renderscript.Allocation;
-import android.renderscript.Element;
-import android.renderscript.RenderScript;
-import android.renderscript.ScriptIntrinsicYuvToRGB;
-import android.renderscript.Type;
-import android.support.annotation.NonNull;
-import android.support.v4.app.ActivityCompat;
-import android.support.v7.app.AppCompatActivity;
-import android.util.Log;
-import android.util.Size;
-import android.util.SparseArray;
-import android.view.Surface;
-import android.view.TextureView;
-
-import com.google.android.gms.vision.Frame;
-import com.google.android.gms.vision.barcode.Barcode;
-import com.google.android.gms.vision.barcode.BarcodeDetector;
-
-import java.util.Arrays;
-
-public class ReadQrActivity extends AppCompatActivity {
-
- // CAMERA
- private static final int CAMERA_REQUEST_CODE = 1;
-
- private CameraManager cameraManager;
- private int cameraFacing;
- private String cameraId;
- private Size previewSize;
-
- private CameraDevice cameraDevice;
- private CameraDevice.StateCallback stateCallback;
- private CameraCaptureSession cameraCaptureSession;
- private CaptureRequest captureRequest;
- private CaptureRequest.Builder captureRequestBuilder;
-
- private TextureView texturePreviewView;
- private TextureView.SurfaceTextureListener surfaceTextureListener;
-
- private HandlerThread camBackgroundThread;
- private Handler camBackgroundHandler;
-
- private ImageReader previewImageReader;
- private ImageReader.OnImageAvailableListener previewImageListener;
-
- // BARCODE
- private BarcodeDetector barcodeDetector;
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_read_qr);
-
- Initialize();
- }
-
- private void Initialize(){
-
- texturePreviewView = findViewById(R.id.texture_view);
-
- setUpBarcodeDetector();
-
- ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, CAMERA_REQUEST_CODE);
-
- cameraManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
- cameraFacing = CameraCharacteristics.LENS_FACING_BACK;
-
- surfaceTextureListener = new TextureView.SurfaceTextureListener() {
- @Override
- public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int width, int height) {
- setUpCamera();
- openCamera();
- }
-
- @Override
- public void onSurfaceTextureSizeChanged(SurfaceTexture surfaceTexture, int width, int height) {
-
- }
-
- @Override
- public boolean onSurfaceTextureDestroyed(SurfaceTexture surfaceTexture) {
- return false;
- }
-
- @Override
- public void onSurfaceTextureUpdated(SurfaceTexture surfaceTexture) {
-
- }
- };
-
- stateCallback = new CameraDevice.StateCallback() {
- @Override
- public void onOpened(CameraDevice cameraDevice) {
- ReadQrActivity.this.cameraDevice = cameraDevice;
- createPreviewSession();
- }
-
- @Override
- public void onDisconnected(CameraDevice cameraDevice) {
- cameraDevice.close();
- ReadQrActivity.this.cameraDevice = null;
- }
-
- @Override
- public void onError(CameraDevice cameraDevice, int error) {
- cameraDevice.close();
- ReadQrActivity.this.cameraDevice = null;
- }
- };
-
- previewImageListener = new ImageReader.OnImageAvailableListener() {
- @Override
- public void onImageAvailable(ImageReader reader) {
-
- Image img = reader.acquireLatestImage();
-
- if(img == null){
- return;
- }
-
- Bitmap bitmapImage = YUV_420_888_toRGBIntrinsics(img);
-
- if(bitmapImage != null){
- Frame frame = new Frame.Builder().setBitmap(bitmapImage).build();
- SparseArray barcodes = barcodeDetector.detect(frame);
-
- if(barcodes.size() > 0){
- returnQrResult(barcodes.valueAt(0).displayValue);
- }
- }
-
- img.close();
- }
- };
- }
-
- private void returnQrResult(String msg){
- Intent returnIntent = new Intent();
- returnIntent.putExtra("result", msg);
- setResult(Activity.RESULT_OK, returnIntent);
- finish();
- }
-
- private void setUpBarcodeDetector(){
- barcodeDetector = new BarcodeDetector.Builder(getApplicationContext())
- .setBarcodeFormats(Barcode.DATA_MATRIX | Barcode.QR_CODE)
- .build();
-
- Log.i("QR", "Setting up BarCodeDetector!");
-
- if (!barcodeDetector.isOperational()) {
- Log.e("QR", "BARCODE DETECTOR IS NOT OPERATIONAL !!!!");
- }
- }
-
-
- private void setUpCamera() {
- try {
- for (String cameraId : cameraManager.getCameraIdList()) {
-
- CameraCharacteristics cameraCharacteristics = cameraManager.getCameraCharacteristics(cameraId);
-
- if (cameraCharacteristics.get(CameraCharacteristics.LENS_FACING) == cameraFacing) {
- StreamConfigurationMap streamConfigurationMap = cameraCharacteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
- previewSize = streamConfigurationMap.getOutputSizes(SurfaceTexture.class)[0];
- this.cameraId = cameraId;
-
- // TEST
- previewImageReader = ImageReader.newInstance(400, 600, ImageFormat.YUV_420_888, 2);
- previewImageReader.setOnImageAvailableListener(previewImageListener, camBackgroundHandler);
- }
- }
- } catch (CameraAccessException e) {
- e.printStackTrace();
- }
- }
-
- private void openCamera() {
- try {
- if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) {
- cameraManager.openCamera(cameraId, stateCallback, camBackgroundHandler);
- }
- } catch (CameraAccessException e) {
- e.printStackTrace();
- }
- }
-
- private void createPreviewSession() {
- try {
-
- SurfaceTexture surfaceTexture = texturePreviewView.getSurfaceTexture();
- surfaceTexture.setDefaultBufferSize(previewSize.getWidth(), previewSize.getHeight());
-
- Surface previewSurface = new Surface(surfaceTexture);
-
- captureRequestBuilder = cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
-
- // This is the real surface used for preview
- captureRequestBuilder.addTarget(previewSurface);
-
- // preview Surface for postprocessing
- captureRequestBuilder.addTarget(previewImageReader.getSurface());
-
- cameraDevice.createCaptureSession(Arrays.asList(previewSurface, previewImageReader.getSurface()), new CameraCaptureSession.StateCallback() {
-
- @Override
- public void onConfigured(@NonNull CameraCaptureSession cameraCaptureSession) {
- if (cameraDevice == null) {
- return;
- }
-
- try {
- captureRequest = captureRequestBuilder.build();
-
- ReadQrActivity.this.cameraCaptureSession = cameraCaptureSession;
- ReadQrActivity.this.cameraCaptureSession.setRepeatingRequest(captureRequest, null, camBackgroundHandler);
- } catch (CameraAccessException e) {
- e.printStackTrace();
- }
- }
-
- @Override
- public void onConfigureFailed(@NonNull CameraCaptureSession cameraCaptureSession) {
-
- }
- }, camBackgroundHandler);
- } catch (CameraAccessException e) {
- e.printStackTrace();
- }
- }
-
-
- private void camOpenBackgroundThread() {
- camBackgroundThread = new HandlerThread("camera_background_thread");
- camBackgroundThread.start();
- camBackgroundHandler = new Handler(camBackgroundThread.getLooper());
- }
-
- private void closeCamera() {
- if (cameraCaptureSession != null) {
- cameraCaptureSession.close();
- cameraCaptureSession = null;
- }
-
- if (cameraDevice != null) {
- cameraDevice.close();
- cameraDevice = null;
- }
- }
-
- private void closeBackgroundThreads() {
- if (camBackgroundHandler != null) {
- camBackgroundThread.quitSafely();
- camBackgroundThread = null;
- camBackgroundHandler = null;
- }
- }
-
-
- @Override
- protected void onResume() {
- super.onResume();
-
- camOpenBackgroundThread();
-
- if (texturePreviewView.isAvailable()) {
- setUpCamera();
- openCamera();
- } else {
- texturePreviewView.setSurfaceTextureListener(surfaceTextureListener);
- }
- }
-
- @Override
- protected void onStop() {
- super.onStop();
- closeCamera();
- closeBackgroundThreads();
- }
-
-
- private Bitmap YUV_420_888_toRGBIntrinsics(Image image) {
-
- if (image == null) return null;
-
- int W = image.getWidth();
- int H = image.getHeight();
-
- Image.Plane Y = image.getPlanes()[0];
- Image.Plane U = image.getPlanes()[1];
- Image.Plane V = image.getPlanes()[2];
-
- int Yb = Y.getBuffer().remaining();
- int Ub = U.getBuffer().remaining();
- int Vb = V.getBuffer().remaining();
-
- byte[] data = new byte[Yb + Ub + Vb];
-
- Y.getBuffer().get(data, 0, Yb);
- V.getBuffer().get(data, Yb, Vb);
- U.getBuffer().get(data, Yb + Vb, Ub);
-
- RenderScript rs = RenderScript.create(getApplicationContext());
-
- ScriptIntrinsicYuvToRGB yuvToRgbIntrinsic = ScriptIntrinsicYuvToRGB.create(rs, Element.U8_4(rs));
-
- Type.Builder yuvType = new Type.Builder(rs, Element.U8(rs)).setX(data.length);
- Allocation in = Allocation.createTyped(rs, yuvType.create(), Allocation.USAGE_SCRIPT);
-
- Type.Builder rgbaType = new Type.Builder(rs, Element.RGBA_8888(rs)).setX(W).setY(H);
- Allocation out = Allocation.createTyped(rs, rgbaType.create(), Allocation.USAGE_SCRIPT);
-
-
- final Bitmap bmpout = Bitmap.createBitmap(W, H, Bitmap.Config.ARGB_8888);
-
- in.copyFromUnchecked(data);
-
- yuvToRgbIntrinsic.setInput(in);
- yuvToRgbIntrinsic.forEach(out);
- out.copyTo(bmpout);
- image.close();
- return bmpout ;
- }
-}
diff --git a/app/src/main/java/de/korrelator/overview/mispauth/SettingsActivity.java b/app/src/main/java/de/korrelator/overview/mispauth/SettingsActivity.java
deleted file mode 100644
index a46fec6..0000000
--- a/app/src/main/java/de/korrelator/overview/mispauth/SettingsActivity.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package de.korrelator.overview.mispauth;
-
-import android.preference.Preference;
-import android.preference.PreferenceFragment;
-import android.support.annotation.Nullable;
-import android.support.v7.app.AppCompatActivity;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.ListView;
-
-public class SettingsActivity extends AppCompatActivity {
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
- getFragmentManager().beginTransaction().replace(android.R.id.content, new MainPreferenceFragment()).commit();
- }
-
- public static class MainPreferenceFragment extends PreferenceFragment {
- @Override
- public void onCreate(final Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- addPreferencesFromResource(R.xml.pref_main);
- }
- }
-}
diff --git a/app/src/main/java/de/korrelator/overview/mispauthv2/MainActivity.java b/app/src/main/java/de/korrelator/overview/mispauthv2/MainActivity.java
deleted file mode 100644
index 01f83ef..0000000
--- a/app/src/main/java/de/korrelator/overview/mispauthv2/MainActivity.java
+++ /dev/null
@@ -1,209 +0,0 @@
-package de.korrelator.overview.mispauthv2;
-
-import android.content.Intent;
-import android.support.v7.app.AppCompatActivity;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.View;
-import android.widget.Button;
-import android.widget.TextView;
-
-import com.android.volley.VolleyError;
-
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import de.korrelator.overview.mispauthv2.models.Organisation;
-import de.korrelator.overview.mispauthv2.models.OrganisationBuilder;
-import de.korrelator.overview.mispauthv2.models.Server;
-import de.korrelator.overview.mispauthv2.models.ServerBuilder;
-import de.korrelator.overview.mispauthv2.models.User;
-import de.korrelator.overview.mispauthv2.models.UserBuilder;
-import de.korrelator.overview.mispauthv2.network.MispRequests;
-
-public class MainActivity extends AppCompatActivity {
-
- private static final String TAG = "MISPAUTH";
- private static final int SYNC_EVENTS_REQUEST = 1000;
-
- private MispRequests mispRequests;
-
- private String myOrgName = "My Orgname";
- private String myEmail = "example@email.bar";
- private String baseURL = "http://192.168.178.200";
-
- private TextView textViewResponse;
-
- private int tmpOrgID, tmpSyncUserID;
-
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
-
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
-
- mispRequests = new MispRequests(getApplicationContext(), baseURL);
- textViewResponse = findViewById(R.id.textview_json_result);
-
- Button syncEventsButton = findViewById(R.id.button_sync_events);
- syncEventsButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- SyncEvents();
- }
- });
-
- Button shareEventsButton = findViewById(R.id.button_share_events);
- shareEventsButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- ShareEvents();
- }
- });
-
- Button receiveEventsButton = findViewById(R.id.button_receive_events);
- receiveEventsButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- ReceiveEvents();
- }
- });
- }
-
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- switch (requestCode){
- case SYNC_EVENTS_REQUEST:
-
- String qrContent = data.getStringExtra("qr_data");
-
- try {
-
- JSONArray qrData = new JSONArray(qrContent);
-
- JSONObject serverInfo = Server.fromJSON(qrData.getJSONObject(0)).toJSON();
- JSONObject userInfo = User.fromJSON(qrData.getJSONObject(1)).toJSON();
- JSONObject orgInfo = Organisation.fromJSON(qrData.getJSONObject(2)).toJSON();
-
- mispRequests.EditOrganisation(tmpOrgID, orgInfo, new MispRequests.EditOrganisationResponse() {
- @Override
- public void result(boolean success) {
-
- }
-
- @Override
- public void error(VolleyError volleyError) {
-
- }
- });
-
- mispRequests.EditUser(tmpSyncUserID, userInfo, new MispRequests.EditUserResponse() {
- @Override
- public void result(JSONObject msg) {
-
- }
-
- @Override
- public void error(VolleyError volleyError) {
-
- }
- });
-
- mispRequests.AddServer(serverInfo, new MispRequests.AddServerResponse() {
- @Override
- public void result(JSONObject result) {
-
- }
-
- @Override
- public void error(VolleyError volleyError) {
-
- }
- });
-
- } catch (JSONException e){
- e.printStackTrace();
- }
-
- break;
-
- default:
- Log.e(TAG, "requestCode " + requestCode + " is not known!");
- }
- }
-
-
- private void SyncEvents(){
-
- JSONObject tmpOrgBody = new OrganisationBuilder().local(true).build().toJSON();
-
- mispRequests.AddOrganisation(tmpOrgBody, new MispRequests.AddOrganisationResponse() {
- @Override
- public void result(int orgID) {
-
- tmpOrgID = orgID;
-
- JSONObject tmpSyncUser = new UserBuilder().orgID(orgID).roleType(User.RoleType.SYNC_USER).build().toJSON();
-
- mispRequests.AddUser(tmpSyncUser, new MispRequests.AddUserResponse() {
- @Override
- public void result(int id, String authKey) {
-
- tmpSyncUserID = id;
-
- JSONArray array = new JSONArray();
-
-
- JSONObject myServerInformation = new ServerBuilder()
- .url(baseURL)
- .name(myOrgName)
- .authKey(authKey)
- .build().toJSON();
-
- JSONObject myUserInformation = new UserBuilder()
- .email("felixpk@outlug.de")
- .build()
- .toJSON();
-
- JSONObject myOrganisationInformation = new OrganisationBuilder()
- .name(myOrgName)
- .local(true)
- .description("sample description")
- .nationality("DE")
- .sector("Programming")
- .build()
- .toJSON();
-
- array.put(myServerInformation);
- array.put(myUserInformation);
- array.put(myOrganisationInformation);
-
- Intent syncIntent = new Intent(getApplicationContext(), SyncActivity.class);
- syncIntent.putExtra("qr_data", array.toString());
- startActivityForResult(syncIntent, SYNC_EVENTS_REQUEST);
- }
-
- @Override
- public void error(VolleyError volleyError) {
- textViewResponse.setText(volleyError.toString());
- }
- });
- }
-
- @Override
- public void error(VolleyError error) {
-
- }
- });
- }
-
- private void ShareEvents(){
-
- }
-
- private void ReceiveEvents(){
-
- }
-}
diff --git a/app/src/main/java/de/korrelator/overview/mispauthv2/SyncActivity.java b/app/src/main/java/de/korrelator/overview/mispauthv2/SyncActivity.java
deleted file mode 100644
index 9dc1983..0000000
--- a/app/src/main/java/de/korrelator/overview/mispauthv2/SyncActivity.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package de.korrelator.overview.mispauthv2;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.graphics.Bitmap;
-import android.graphics.Point;
-import android.support.v7.app.AppCompatActivity;
-import android.os.Bundle;
-import android.view.Display;
-import android.widget.ImageView;
-
-import net.glxn.qrgen.android.QRCode;
-
-public class SyncActivity extends AppCompatActivity {
-
- private Point displaySize;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_sync);
-
- Display display = getWindowManager().getDefaultDisplay();
- displaySize = new Point();
- display.getSize(displaySize);
-
- Intent intent = getIntent();
-
- String qrData = intent.getStringExtra("qr_data");
- PopulateMyQR(qrData);
- }
-
- private void PopulateMyQR(String qrData){
- ImageView qrView = findViewById(R.id.image_view_sync_qr);
-
- Bitmap bitmap =
- QRCode.from(qrData)
- .withSize(displaySize.x, displaySize.x)
- .withColor(0xFF000000, 0x00000000)
- .bitmap();
-
- qrView.setImageBitmap(bitmap);
- }
-
- private void returnQrData(String qrData){
- Intent resultIntent = new Intent();
- resultIntent.putExtra("qr_data", qrData);
- setResult(Activity.RESULT_OK, resultIntent);
- finish();
- }
-}
diff --git a/app/src/main/java/de/korrelator/overview/mispauthv2/camera/QRScanner.java b/app/src/main/java/de/korrelator/overview/mispauthv2/camera/QRScanner.java
deleted file mode 100644
index cc94585..0000000
--- a/app/src/main/java/de/korrelator/overview/mispauthv2/camera/QRScanner.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package de.korrelator.overview.mispauthv2.camera;
-
-import android.Manifest;
-import android.content.Context;
-import android.hardware.camera2.CameraCharacteristics;
-import android.hardware.camera2.CameraManager;
-import android.support.v4.app.ActivityCompat;
-import android.view.TextureView;
-
-public class QRScanner {
-
- private static final int CAM_REQUEST_CODE = 1;
-
- private Context context;
- private TextureView textureView;
-
- private CameraManager cameraManager;
- private int cameraFacing;
-
-
- public QRScanner(Context context, TextureView textureView){
- this.context = context.getApplicationContext();
- this.textureView = textureView;
-
- Initialize();
- }
-
- private void Initialize(){
-// ActivityCompat.requestPermissions(, new String[]{Manifest.permission.CAMERA}, CAM_REQUEST_CODE);
-
-// cameraManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
-// cameraFacing = CameraCharacteristics.LENS_FACING_BACK;
- }
-}
diff --git a/app/src/main/java/de/korrelator/overview/mispauthv2/models/Organisation.java b/app/src/main/java/de/korrelator/overview/mispauthv2/models/Organisation.java
deleted file mode 100644
index d4a4702..0000000
--- a/app/src/main/java/de/korrelator/overview/mispauthv2/models/Organisation.java
+++ /dev/null
@@ -1,94 +0,0 @@
-package de.korrelator.overview.mispauthv2.models;
-
-import android.net.Uri;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-
-public class Organisation {
-
- private String name;
- private String description;
- private String nationality;
- private String sector;
- private String uuid;
- private boolean local;
-
-
- public Organisation(String name, boolean local, String description, String nationality, String sector, String uuid){
- this.name = name;
- this.description = description;
- this.nationality = nationality;
- this.sector = sector;
- this.uuid = uuid;
- this.local = local;
- }
-
-
- public String getName() {
- return name;
- }
-
- public String getDescription() {
- return description;
- }
-
- public String getSector() {
- return sector;
- }
-
- public String getUuid() {
- return uuid;
- }
-
- public boolean isLocal() {
- return local;
- }
-
-
- public JSONObject toJSON(){
- JSONObject organisation = new JSONObject();
-
- try {
-
- organisation.put("local", local);
-
- if(!name.equals("")){
- organisation.put("name", Uri.decode(name));
- }
-
- if(!description.equals("")){
- organisation.put("description", Uri.decode(description));
- }
-
- if(!nationality.equals("")){
- organisation.put("nationality", Uri.decode(nationality));
- }
-
- if(!sector.equals("")){
- organisation.put("sector", Uri.decode(sector));
- }
-
- if(!uuid.equals("")){
- organisation.put("uuid", Uri.decode(uuid));
- }
-
-
- } catch (JSONException e) {
- e.printStackTrace();
- }
-
- return organisation;
- }
-
- public static Organisation fromJSON(JSONObject json){
- return new OrganisationBuilder()
- .name(json.optString("name", ""))
- .local(json.optBoolean("local", true))
- .description(json.optString("description", ""))
- .nationality(json.optString("nationality", ""))
- .sector(json.optString("sector", ""))
- .uuid(json.optString("uuid", ""))
- .build();
- }
-}
diff --git a/app/src/main/java/de/korrelator/overview/mispauthv2/models/OrganisationBuilder.java b/app/src/main/java/de/korrelator/overview/mispauthv2/models/OrganisationBuilder.java
deleted file mode 100644
index 5d65847..0000000
--- a/app/src/main/java/de/korrelator/overview/mispauthv2/models/OrganisationBuilder.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package de.korrelator.overview.mispauthv2.models;
-
-public class OrganisationBuilder {
-
- private String name = "Default Org";
- private boolean local = true;
- private String description = "";
- private String nationality = "";
- private String sector = "";
- private String uuid = "";
-
- public OrganisationBuilder() {}
-
- public Organisation build(){
- return new Organisation(name, local, description, nationality, sector, uuid);
- }
-
- public OrganisationBuilder name(String name){
- this.name = name;
- return this;
- }
-
- public OrganisationBuilder local(boolean local){
- this.local = local;
- return this;
- }
-
- public OrganisationBuilder description(String description){
- this.description = description;
- return this;
- }
-
- public OrganisationBuilder nationality(String nationality){
- this.nationality = nationality;
- return this;
- }
-
- public OrganisationBuilder sector(String sector){
- this.sector = sector;
- return this;
- }
-
- public OrganisationBuilder uuid(String uuid){
- this.uuid = uuid;
- return this;
- }
-}
diff --git a/app/src/main/java/de/korrelator/overview/mispauthv2/models/Server.java b/app/src/main/java/de/korrelator/overview/mispauthv2/models/Server.java
deleted file mode 100644
index 978a5ed..0000000
--- a/app/src/main/java/de/korrelator/overview/mispauthv2/models/Server.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package de.korrelator.overview.mispauthv2.models;
-
-import android.support.annotation.NonNull;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-
-public class Server {
-
- private String url;
- private String name;
- private String organisationType;
- private String authKey;
-
-
- public Server(String url, String name, String organisationType, String authKey) {
- this.url = url;
- this.name = name;
- this.organisationType = organisationType;
- this.authKey = authKey;
- }
-
-
- public String getUrl() {
- return url;
- }
-
- public String getName() {
- return name;
- }
-
- public String getOrganisationType() {
- return organisationType;
- }
-
- public String getAuthKey() {
- return authKey;
- }
-
-
- public JSONObject toJSON(){
-
- JSONObject server = new JSONObject();
-
- try {
-
- if(!url.equals("")){
- server.put("url", url);
- }
-
- if(!name.equals("")){
- server.put("name", name);
- }
-
- if(!organisationType.equals("")){
- server.put("organisation_type", organisationType);
- }
-
- if(!authKey.equals("")){
- server.put("authkey", authKey);
- }
-
- } catch (JSONException e) {
- e.printStackTrace();
- }
-
- return server;
- }
-
- public static Server fromJSON(JSONObject json){
- return new Server(
- json.optString("url", ""),
- json.optString("name", ""),
- json.optString("organisation_type", ""),
- json.optString("authkey", ""));
- }
-}
diff --git a/app/src/main/java/de/korrelator/overview/mispauthv2/models/ServerBuilder.java b/app/src/main/java/de/korrelator/overview/mispauthv2/models/ServerBuilder.java
deleted file mode 100644
index 21edd33..0000000
--- a/app/src/main/java/de/korrelator/overview/mispauthv2/models/ServerBuilder.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package de.korrelator.overview.mispauthv2.models;
-
-public class ServerBuilder {
-
- private String url = "";
- private String name = "";
- private String organisationType = "";
- private String authKey = "";
-
- public ServerBuilder() {}
-
- public Server build(){
- return new Server(url, name, organisationType, authKey);
- }
-
- public ServerBuilder url(String url){
- this.url = url;
- return this;
- }
-
- public ServerBuilder name(String name){
- this.name = name;
- return this;
- }
-
- public ServerBuilder organisationType(String organisationType){
- this.organisationType = organisationType;
- return this;
- }
-
- public ServerBuilder authKey(String authKey){
- this.authKey = authKey;
- return this;
- }
-}
diff --git a/app/src/main/java/de/korrelator/overview/mispauthv2/models/User.java b/app/src/main/java/de/korrelator/overview/mispauthv2/models/User.java
deleted file mode 100644
index b22cfde..0000000
--- a/app/src/main/java/de/korrelator/overview/mispauthv2/models/User.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package de.korrelator.overview.mispauthv2.models;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-
-public class User {
-
- private String email;
- private int orgID;
- private int roleType;
- private String authKey;
-
-
- public User(String email, int orgID, int roleType, String authKey) {
- this.email = email;
- this.orgID = orgID;
- this.roleType = roleType;
- this.authKey = authKey;
- }
-
-
- public String getEmail() {
- return email;
- }
-
- public int getOrgID() {
- return orgID;
- }
-
- public int getRoleType() {
- return roleType;
- }
-
- public String getAuthKey() {
- return authKey;
- }
-
-
- public JSONObject toJSON(){
- JSONObject user = new JSONObject();
-
- try {
-
- if(!email.equals("")){
- user.put("email", email);
- }
-
- if(orgID > -1){
- user.put("org_id", orgID);
- }
-
- if(roleType > -1){
- user.put("role_id", roleType);
- }
-
- if(!authKey.equals("")){
- user.put("authkey", authKey);
- }
-
- } catch (JSONException e) {
- e.printStackTrace();
- }
-
- return user;
- }
-
- public static User fromJSON(JSONObject json){
- return new User(
- json.optString("name", ""),
- json.optInt("org_id", -1),
- json.optInt("role_id", -1),
- json.optString("authkey", ""));
- }
-
-
- public interface RoleType{
- int ADMIN = 0;
- int SYNC_USER = 5;
- }
-}
diff --git a/app/src/main/java/de/korrelator/overview/mispauthv2/models/UserBuilder.java b/app/src/main/java/de/korrelator/overview/mispauthv2/models/UserBuilder.java
deleted file mode 100644
index ee2f918..0000000
--- a/app/src/main/java/de/korrelator/overview/mispauthv2/models/UserBuilder.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package de.korrelator.overview.mispauthv2.models;
-
-public class UserBuilder {
-
- private String email = "default@email.bar";
- private int orgID = -1;
- private int roleType = -1;
- private String authKey = "";
-
- public UserBuilder(){}
-
- public User build(){
- return new User(email, orgID, roleType, authKey);
- }
-
- public UserBuilder email(String email){
- this.email = email;
- return this;
- }
-
- public UserBuilder orgID(int orgID){
- this.orgID = orgID;
- return this;
- }
-
- public UserBuilder roleType(int roleType){
- this.roleType = roleType;
- return this;
- }
-
- public UserBuilder authKey(String authKey){
- this.authKey = authKey;
- return this;
- }
-}
diff --git a/app/src/main/java/de/korrelator/overview/mispauthv2/network/MispRequests.java b/app/src/main/java/de/korrelator/overview/mispauthv2/network/MispRequests.java
deleted file mode 100644
index 500e040..0000000
--- a/app/src/main/java/de/korrelator/overview/mispauthv2/network/MispRequests.java
+++ /dev/null
@@ -1,269 +0,0 @@
-package de.korrelator.overview.mispauthv2.network;
-
-import android.content.Context;
-import android.support.annotation.Nullable;
-
-import com.android.volley.AuthFailureError;
-import com.android.volley.Request;
-import com.android.volley.RequestQueue;
-import com.android.volley.Response;
-import com.android.volley.VolleyError;
-import com.android.volley.toolbox.JsonArrayRequest;
-import com.android.volley.toolbox.JsonObjectRequest;
-import com.android.volley.toolbox.Volley;
-
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import de.korrelator.overview.mispauthv2.R;
-
-public class MispRequests {
-
- private Context context;
- private RequestQueue queue;
- private String baseURL;
-
-
- public MispRequests(Context context, String baseURL){
-
- this.context = context.getApplicationContext();
- this.baseURL = baseURL;
-
- queue = Volley.newRequestQueue(this.context);
- }
-
-
- public void GetSyncUsers(final GetSyncUsersResponse resp){
-
- String currentURL = baseURL + "/admin/users";
-
- Response.Listener responseListener = new Response.Listener() {
- @Override
- public void onResponse(JSONArray response) {
-
- int userCount = response.length();
-
- List userIDList = new ArrayList<>();
-
- for(int i = 0; i < userCount; i++){
- try{
- JSONObject root = response.getJSONObject(i);
- JSONObject role = root.getJSONObject("Role");
- JSONObject user = root.getJSONObject("User");
-
- if(role.getInt("id") == 5){
- userIDList.add(user.getInt("id"));
- }
-
- } catch (JSONException e){
- e.printStackTrace();
- }
- }
-
- resp.result(userIDList.toArray(new Integer[userIDList.size()]));
- }
- };
-
- Response.ErrorListener errorListener = new Response.ErrorListener() {
- @Override
- public void onErrorResponse(VolleyError error) {
- resp.error(error);
- }
- };
-
- queue.add(arrayRequest(Request.Method.GET, currentURL, null, responseListener, errorListener));
- }
-
- public void AddUser(JSONObject body, final AddUserResponse resp){
-
- String currentURL = baseURL + "/admin/users/add";
-
- Response.Listener responseListener = new Response.Listener() {
- @Override
- public void onResponse(JSONObject response) {
- try {
- JSONObject user = response.getJSONObject("User");
- resp.result(user.getInt("id"), user.getString("authkey"));
- } catch (JSONException e){
- e.printStackTrace();
- }
- }
- };
-
- Response.ErrorListener errorListener = new Response.ErrorListener() {
- @Override
- public void onErrorResponse(VolleyError error) {
- resp.error(error);
- }
- };
-
- queue.add(objectRequest(Request.Method.POST, currentURL, body, responseListener, errorListener));
- }
-
- public void EditUser(int userID, JSONObject body, final EditUserResponse resp){
- String currentURL = baseURL + "/admin/users/edit/" + userID;
-
- Response.Listener responseListener = new Response.Listener() {
- @Override
- public void onResponse(JSONObject response) {
- resp.result(response);
- }
- };
-
- Response.ErrorListener errorListener = new Response.ErrorListener() {
- @Override
- public void onErrorResponse(VolleyError error) {
- resp.error(error);
- }
- };
-
- queue.add(objectRequest(Request.Method.POST, currentURL, body, responseListener, errorListener));
- }
-
- public void AddOrganisation(JSONObject body, final AddOrganisationResponse response){
-
- String currentURL = baseURL + "/admin/organisations/add";
-
- Response.Listener responseListener = new Response.Listener() {
- @Override
- public void onResponse(JSONObject resp) {
- try {
- JSONObject org = resp.getJSONObject("Organisation");
- response.result(org.getInt("id"));
- } catch (JSONException e){
- e.printStackTrace();
- }
- }
- };
-
- Response.ErrorListener errorListener = new Response.ErrorListener() {
- @Override
- public void onErrorResponse(VolleyError error) {
- response.error(error);
- }
- };
-
- queue.add(objectRequest(Request.Method.POST, currentURL, body, responseListener, errorListener));
- }
-
- public void EditOrganisation(int orgID, JSONObject updateBody, final EditOrganisationResponse resp){
-
- String currentURL = baseURL + "/admin/organisations/edit/" + orgID;
-
- Response.Listener responseListener = new Response.Listener() {
- @Override
- public void onResponse(JSONObject response) {
- resp.result(true);
- }
- };
-
- Response.ErrorListener errorListener = new Response.ErrorListener() {
- @Override
- public void onErrorResponse(VolleyError error) {
- resp.error(error);
- }
- };
-
- queue.add(objectRequest(Request.Method.POST, currentURL, updateBody, responseListener, errorListener));
- }
-
- public void AddServer(JSONObject body, final AddServerResponse resp){
- String currentURL = baseURL + "/servers/add";
-
- Response.Listener responseListener = new Response.Listener() {
- @Override
- public void onResponse(JSONObject response) {
- resp.result(response);
- }
- };
-
- Response.ErrorListener errorListener = new Response.ErrorListener() {
- @Override
- public void onErrorResponse(VolleyError error) {
- resp.error(error);
- }
- };
-
- queue.add(objectRequest(Request.Method.POST, currentURL, body, responseListener, errorListener));
- }
-
-
- private JsonObjectRequest objectRequest(int method, String url, @Nullable JSONObject body, Response.Listener listener, Response.ErrorListener errorListener){
- return new JsonObjectRequest(
- method,
- url,
- body,
- listener,
- errorListener) {
-
- @Override
- public Map getHeaders() throws AuthFailureError {
- Map params = new HashMap<>();
-
- params.put("Authorization", context.getString(R.string.api_key));
- params.put("Accept", "application/json");
- params.put("Content-Type", "application/json; utf-8");
-
- return params;
- }
- };
- }
-
- private JsonArrayRequest arrayRequest(int method, String url, @Nullable JSONArray body, Response.Listener listener, Response.ErrorListener errorListener){
- return new JsonArrayRequest(
- method,
- url,
- body,
- listener,
- errorListener){
-
- @Override
- public Map getHeaders() throws AuthFailureError {
- Map params = new HashMap<>();
-
- params.put("Authorization", context.getString(R.string.api_key));
- params.put("Accept", "application/json");
- params.put("Content-Type", "application/json; utf-8");
-
- return params;
- }
- };
- }
-
-
- public interface GetSyncUsersResponse{
- void result(Integer[] userIDs);
- void error(VolleyError volleyError);
- }
-
- public interface AddOrganisationResponse{
- void result(int orgID);
- void error(VolleyError error);
- }
-
- public interface EditOrganisationResponse{
- void result(boolean success);
- void error(VolleyError volleyError);
- }
-
- public interface AddUserResponse {
- void result(int id, String authKey);
- void error(VolleyError volleyError);
- }
-
- public interface EditUserResponse{
- void result(JSONObject msg);
- void error(VolleyError volleyError);
- }
-
- public interface AddServerResponse{
- void result(JSONObject result);
- void error(VolleyError volleyError);
- }
-}
diff --git a/app/src/main/java/de/overview/wg/its/misp_authentificator/PreferenceManager.java b/app/src/main/java/de/overview/wg/its/misp_authentificator/PreferenceManager.java
new file mode 100644
index 0000000..e03ae07
--- /dev/null
+++ b/app/src/main/java/de/overview/wg/its/misp_authentificator/PreferenceManager.java
@@ -0,0 +1,54 @@
+package de.overview.wg.its.misp_authentificator;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+
+public class PreferenceManager {
+
+ private static PreferenceManager instance;
+ private Context context;
+ private SharedPreferences sharedPreferences;
+
+ private String PREF_KEY_SERVER_URL;
+ private String PREF_KEY_SERVER_API_KEY;
+
+ private PreferenceManager(Context context) {
+ this.context = context;
+ sharedPreferences = android.preference.PreferenceManager.getDefaultSharedPreferences(context);
+
+ PREF_KEY_SERVER_URL = context.getResources().getString(R.string.key_server_url);
+ PREF_KEY_SERVER_API_KEY = context.getResources().getString(R.string.key_server_api_key);
+ }
+
+ public String getMyServerUrl() {
+ return sharedPreferences.getString(PREF_KEY_SERVER_URL, "");
+ }
+ public void setMyServerUrl(String serverUrl) {
+ SharedPreferences.Editor editor = sharedPreferences.edit();
+ editor.putString(PREF_KEY_SERVER_URL, serverUrl);
+ editor.apply();
+ }
+
+ public String getMyServerApiKey() {
+ return sharedPreferences.getString(PREF_KEY_SERVER_API_KEY, "");
+ }
+ public void setMyServerApiKey(String apiKey) {
+ SharedPreferences.Editor editor = sharedPreferences.edit();
+ editor.putString(PREF_KEY_SERVER_API_KEY, apiKey);
+ editor.apply();
+ }
+
+ public void deleteAllLocalData() {
+ SharedPreferences.Editor editor = sharedPreferences.edit();
+ editor.clear();
+ editor.apply();
+ }
+
+ public static PreferenceManager Instance(Context context) {
+ if(instance == null) {
+ instance = new PreferenceManager(context);
+ }
+
+ return instance;
+ }
+}
diff --git a/app/src/main/java/de/overview/wg/its/misp_authentificator/activity/MainActivity.java b/app/src/main/java/de/overview/wg/its/misp_authentificator/activity/MainActivity.java
new file mode 100644
index 0000000..f84cbf3
--- /dev/null
+++ b/app/src/main/java/de/overview/wg/its/misp_authentificator/activity/MainActivity.java
@@ -0,0 +1,100 @@
+package de.overview.wg.its.misp_authentificator.activity;
+
+import android.content.Intent;
+import android.support.design.widget.FloatingActionButton;
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.support.v7.widget.DividerItemDecoration;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.support.v7.widget.Toolbar;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.ImageView;
+
+import de.overview.wg.its.misp_authentificator.PreferenceManager;
+import de.overview.wg.its.misp_authentificator.R;
+import de.overview.wg.its.misp_authentificator.adapter.ExtOrgAdapter;
+
+public class MainActivity extends AppCompatActivity {
+
+ PreferenceManager preferenceManager;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+
+ preferenceManager = PreferenceManager.Instance(this);
+
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+
+ Toolbar toolbar = findViewById(R.id.toolbar);
+ setSupportActionBar(toolbar);
+
+ RecyclerView orgRecyclerView = findViewById(R.id.orgRecyclerView);
+ orgRecyclerView.setHasFixedSize(true);
+
+ RecyclerView.LayoutManager orgLayoutManager = new LinearLayoutManager(this);
+ orgRecyclerView.setLayoutManager(orgLayoutManager);
+
+ DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(orgRecyclerView.getContext(), 1);
+ orgRecyclerView.addItemDecoration(dividerItemDecoration);
+
+ String[] dataSet = {};
+ RecyclerView.Adapter orgAdapter = new ExtOrgAdapter(dataSet);
+ orgRecyclerView.setAdapter(orgAdapter);
+
+ if(dataSet.length == 0){
+ orgRecyclerView.setVisibility(View.GONE);
+ findViewById(R.id.empty_view).setVisibility(View.VISIBLE);
+ } else {
+ orgRecyclerView.setVisibility(View.VISIBLE);
+ findViewById(R.id.empty_view).setVisibility(View.GONE);
+ }
+
+ FloatingActionButton fabAdd = findViewById(R.id.fab_add);
+ final FloatingActionButton fabSync = findViewById(R.id.fab_sync);
+
+ fabAdd.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if(fabSync.getVisibility() == View.GONE){
+ fabSync.setVisibility(View.VISIBLE);
+ } else {
+ fabSync.setVisibility(View.GONE);
+ }
+ }
+ });
+
+ fabSync.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ startSyncActivity();
+ }
+ });
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ getMenuInflater().inflate(R.menu.menu_main, menu);
+ return true;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ int id = item.getItemId();
+
+ if (id == R.id.menu_item_settings) {
+ startActivity(new Intent(this, SettingsActivity.class));
+ return true;
+ }
+
+ return super.onOptionsItemSelected(item);
+ }
+
+
+ private void startSyncActivity(){
+ startActivity(new Intent(this, SyncActivity.class));
+ }
+}
diff --git a/app/src/main/java/de/overview/wg/its/misp_authentificator/activity/SettingsActivity.java b/app/src/main/java/de/overview/wg/its/misp_authentificator/activity/SettingsActivity.java
new file mode 100644
index 0000000..5524def
--- /dev/null
+++ b/app/src/main/java/de/overview/wg/its/misp_authentificator/activity/SettingsActivity.java
@@ -0,0 +1,179 @@
+package de.overview.wg.its.misp_authentificator.activity;
+
+import android.os.Bundle;
+import android.support.design.widget.FloatingActionButton;
+import android.support.design.widget.Snackbar;
+import android.support.design.widget.TextInputLayout;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
+import android.util.Log;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.ProgressBar;
+
+import com.android.volley.AuthFailureError;
+import com.android.volley.NoConnectionError;
+import com.android.volley.VolleyError;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import de.overview.wg.its.misp_authentificator.PreferenceManager;
+import de.overview.wg.its.misp_authentificator.R;
+import de.overview.wg.its.misp_authentificator.network.MispRequest;
+
+public class SettingsActivity extends AppCompatActivity {
+
+ private static final String TAG = "MISP-TAG";
+
+ private PreferenceManager preferenceManager;
+ private ProgressBar progressBar;
+ private TextInputLayout serverUrlLayout, apiKeyLayout;
+ private EditText serverUrlText, apiKeyText;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_settings);
+
+ Toolbar toolbar = findViewById(R.id.toolbar);
+ setSupportActionBar(toolbar);
+
+ getSupportActionBar().setDisplayShowHomeEnabled(true);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+
+ serverUrlLayout = findViewById(R.id.input_layout_server_url);
+ apiKeyLayout = findViewById(R.id.input_layout_api_key);
+ serverUrlText = findViewById(R.id.edit_server_url);
+ apiKeyText = findViewById(R.id.edit_api_key);
+
+ progressBar = findViewById(R.id.progressBar);
+
+ FloatingActionButton fabDlOrgInfo = findViewById(R.id.fab_download_own_org_info);
+
+ fabDlOrgInfo.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ downloadMyOrgInfo();
+ }
+ });
+
+ restoreSavedValues();
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ getMenuInflater().inflate(R.menu.menu_settings, menu);
+ return true;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ int id = item.getItemId();
+
+ if (id == R.id.menu_item_deleteData) {
+ serverUrlText.setText("");
+ apiKeyText.setText("");
+ preferenceManager.deleteAllLocalData();
+ return true;
+ }
+
+ return super.onOptionsItemSelected(item);
+ }
+
+
+ private void restoreSavedValues() {
+ preferenceManager = PreferenceManager.Instance(this);
+
+ serverUrlText.setText(preferenceManager.getMyServerUrl());
+ apiKeyText.setText(preferenceManager.getMyServerApiKey());
+ }
+
+ private void downloadMyOrgInfo(){
+
+ boolean failed = false;
+
+ String tmpServerUrl = serverUrlText.getText().toString();
+ String tmpApiKey = apiKeyText.getText().toString();
+
+ if(tmpServerUrl.isEmpty()) {
+ serverUrlLayout.setError("Server URL is required");
+ failed = true;
+ }
+
+ if(tmpApiKey.isEmpty()) {
+ apiKeyLayout.setError("API Key is required");
+ failed = true;
+ }
+
+ if(failed) {
+ return;
+ }
+
+ final MispRequest request = MispRequest.Instance(this);
+
+ request.setServerCredentials(tmpServerUrl, tmpApiKey);
+
+ progressBar.setVisibility(View.VISIBLE);
+
+ request.myUserInformation(new MispRequest.UserInformationCallback() {
+ @Override
+ public void onResult(JSONObject myUserInformation) {
+
+ int orgID;
+
+ try {
+ orgID = myUserInformation.getInt("org_id");
+
+ request.OrganisationInformation(orgID, new MispRequest.OrganisationInformationCallback() {
+ @Override
+ public void onResult(JSONObject organisationInformation) {
+ progressBar.setVisibility(View.GONE);
+ Log.i(TAG, "onResult: " + organisationInformation.toString());
+ }
+
+ @Override
+ public void onError(VolleyError volleyError) {
+ progressBar.setVisibility(View.GONE);
+ Log.e(TAG, "onError: " + volleyError.toString());
+ }
+ });
+
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public void onError(VolleyError volleyError) {
+ progressBar.setVisibility(View.GONE);
+
+ if(volleyError instanceof NoConnectionError) {
+ MakeAlert("No connection to server");
+ } else if(volleyError instanceof AuthFailureError) {
+ MakeAlert("Wrong API key");
+ }
+ }
+ });
+
+ // If auth was successful: save new credentials
+ preferenceManager.setMyServerUrl(tmpServerUrl);
+ preferenceManager.setMyServerApiKey(tmpApiKey);
+
+ }
+
+ private void MakeAlert(String msg){
+
+ View contextView = findViewById(R.id.coordinator);
+
+ Snackbar.make(contextView, msg, Snackbar.LENGTH_LONG)
+ .addCallback(new Snackbar.Callback(){
+ @Override
+ public void onShown(Snackbar sb) {
+ progressBar.setVisibility(View.GONE);
+ }
+ }).show();
+ }
+}
diff --git a/app/src/main/java/de/overview/wg/its/misp_authentificator/activity/SyncActivity.java b/app/src/main/java/de/overview/wg/its/misp_authentificator/activity/SyncActivity.java
new file mode 100644
index 0000000..849c22a
--- /dev/null
+++ b/app/src/main/java/de/overview/wg/its/misp_authentificator/activity/SyncActivity.java
@@ -0,0 +1,24 @@
+package de.overview.wg.its.misp_authentificator.activity;
+
+import android.os.Bundle;
+import android.support.design.widget.FloatingActionButton;
+import android.support.design.widget.Snackbar;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
+import android.view.View;
+import de.overview.wg.its.misp_authentificator.R;
+
+public class SyncActivity extends AppCompatActivity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_sync);
+
+ Toolbar toolbar = findViewById(R.id.toolbar);
+ setSupportActionBar(toolbar);
+
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ getSupportActionBar().setDisplayShowHomeEnabled(true);
+ }
+}
diff --git a/app/src/main/java/de/overview/wg/its/misp_authentificator/adapter/ExtOrgAdapter.java b/app/src/main/java/de/overview/wg/its/misp_authentificator/adapter/ExtOrgAdapter.java
new file mode 100644
index 0000000..ba95915
--- /dev/null
+++ b/app/src/main/java/de/overview/wg/its/misp_authentificator/adapter/ExtOrgAdapter.java
@@ -0,0 +1,48 @@
+package de.overview.wg.its.misp_authentificator.adapter;
+
+import android.support.annotation.NonNull;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import de.overview.wg.its.misp_authentificator.R;
+
+public class ExtOrgAdapter extends RecyclerView.Adapter {
+
+ private String[] dataSet;
+
+ public ExtOrgAdapter(String[] dataSet) {
+ this.dataSet = dataSet;
+ }
+
+ @Override
+ public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+
+ View extOrgView = LayoutInflater.from(parent.getContext())
+ .inflate(R.layout.view_holder_ext_org, parent, false);
+
+ return new ViewHolder(extOrgView);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
+ holder.orgTitle.setText(dataSet[position]);
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataSet.length;
+ }
+
+ public static class ViewHolder extends RecyclerView.ViewHolder {
+
+ public TextView orgTitle;
+
+ public ViewHolder(View v) {
+ super(v);
+ orgTitle = v.findViewById(R.id.ext_org_title);
+ }
+ }
+}
diff --git a/app/src/main/java/de/overview/wg/its/misp_authentificator/network/MispRequest.java b/app/src/main/java/de/overview/wg/its/misp_authentificator/network/MispRequest.java
new file mode 100644
index 0000000..55dd79a
--- /dev/null
+++ b/app/src/main/java/de/overview/wg/its/misp_authentificator/network/MispRequest.java
@@ -0,0 +1,173 @@
+package de.overview.wg.its.misp_authentificator.network;
+
+import android.content.Context;
+import android.support.annotation.Nullable;
+import android.util.Log;
+
+import com.android.volley.Request;
+import com.android.volley.RequestQueue;
+import com.android.volley.Response;
+import com.android.volley.VolleyError;
+import com.android.volley.toolbox.JsonObjectRequest;
+import com.android.volley.toolbox.Volley;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import de.overview.wg.its.misp_authentificator.PreferenceManager;
+
+/**
+ * Simple JSON based API to communicate with MISP-Instances
+ */
+public class MispRequest {
+
+ private static final String TAG = "MISP-TAG";
+ private static MispRequest instance;
+
+ private RequestQueue requestQueue;
+ private PreferenceManager preferenceManager;
+
+ private String serverUrl, apiKey;
+
+ /**
+ *
+ * @param context for Volley and PreferenceManager
+ */
+ private MispRequest(Context context) {
+ requestQueue = Volley.newRequestQueue(context);
+ preferenceManager = PreferenceManager.Instance(context);
+ }
+
+ /**
+ *
+ * @param orgId organisation ID on the MISP-Instance
+ * @param callback returns a single Organisation-JSON
+ */
+ public void OrganisationInformation(int orgId, final OrganisationInformationCallback callback) {
+
+ Response.Listener listener = new Response.Listener() {
+ @Override
+ public void onResponse(JSONObject response) {
+ try {
+ callback.onResult(response.getJSONObject("Organisation"));
+ return;
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+
+ callback.onResult(response);
+ }
+ };
+
+ Response.ErrorListener errorListener = new Response.ErrorListener() {
+ @Override
+ public void onErrorResponse(VolleyError error) {
+ callback.onError(error);
+ }
+ };
+
+
+ Request r = objectRequest(Request.Method.GET,
+ serverUrl + "/organisations/view/"+orgId,
+ null,
+ listener,
+ errorListener);
+
+ requestQueue.add(r);
+ }
+
+ /**
+ * Typically used to get the organisation linked with this user
+ * @param callback return user associated with this API-Key
+ */
+ public void myUserInformation(final UserInformationCallback callback) {
+
+ Response.Listener listener = new Response.Listener() {
+ @Override
+ public void onResponse(JSONObject response) {
+
+ try {
+ callback.onResult(response.getJSONObject("User"));
+ return;
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+
+ callback.onResult(response);
+ }
+ };
+
+ Response.ErrorListener errorListener = new Response.ErrorListener() {
+ @Override
+ public void onErrorResponse(VolleyError error) {
+ Log.e(TAG, "onErrorResponse: " + error.toString());
+ callback.onError(error);
+ }
+ };
+
+ if(serverUrl.isEmpty() || apiKey.isEmpty()) {
+ Log.e(TAG, "myUserInformation: server or api key is empty!");
+ return;
+ }
+
+ Request r = objectRequest(
+ Request.Method.GET,
+ serverUrl + "/users/view/me",
+ null,
+ listener,
+ errorListener);
+
+ requestQueue.add(r);
+ }
+
+
+ private JsonObjectRequest objectRequest(int method,
+ String url,
+ @Nullable JSONObject body,
+ Response.Listener listener,
+ Response.ErrorListener errorListener){
+
+ return new JsonObjectRequest(method, url, body, listener, errorListener) {
+
+ @Override
+ public Map getHeaders() {
+ Map params = new HashMap<>();
+
+ params.put("Authorization", apiKey);
+ params.put("Accept", "application/json");
+ params.put("Content-Type", "application/json; utf-8");
+
+ return params;
+ }
+
+ };
+ }
+
+
+ public void setServerCredentials(String serverUrl, String apiKey) {
+ this.serverUrl = serverUrl;
+ this.apiKey = apiKey;
+ }
+
+
+ public static MispRequest Instance(Context context) {
+ if(instance == null) {
+ instance = new MispRequest(context);
+ }
+
+ return instance;
+ }
+
+
+ public interface OrganisationInformationCallback {
+ void onResult(JSONObject organisationInformation);
+ void onError(VolleyError volleyError);
+ }
+ public interface UserInformationCallback {
+ void onResult(JSONObject myOrganisationInformation);
+ void onError(VolleyError volleyError);
+ }
+}
diff --git a/app/src/main/res/drawable-hdpi/ic_action_name.png b/app/src/main/res/drawable-hdpi/ic_action_name.png
deleted file mode 100644
index 895c2ec..0000000
Binary files a/app/src/main/res/drawable-hdpi/ic_action_name.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/ic_settings.png b/app/src/main/res/drawable-hdpi/ic_settings.png
deleted file mode 100644
index 442ae11..0000000
Binary files a/app/src/main/res/drawable-hdpi/ic_settings.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/ic_action_name.png b/app/src/main/res/drawable-mdpi/ic_action_name.png
deleted file mode 100644
index 472c5c9..0000000
Binary files a/app/src/main/res/drawable-mdpi/ic_action_name.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/ic_settings.png b/app/src/main/res/drawable-mdpi/ic_settings.png
deleted file mode 100644
index fd09e6e..0000000
Binary files a/app/src/main/res/drawable-mdpi/ic_settings.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_action_name.png b/app/src/main/res/drawable-xhdpi/ic_action_name.png
deleted file mode 100644
index 811f793..0000000
Binary files a/app/src/main/res/drawable-xhdpi/ic_action_name.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_settings.png b/app/src/main/res/drawable-xhdpi/ic_settings.png
deleted file mode 100644
index 8e1af46..0000000
Binary files a/app/src/main/res/drawable-xhdpi/ic_settings.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_name.png b/app/src/main/res/drawable-xxhdpi/ic_action_name.png
deleted file mode 100644
index 4173492..0000000
Binary files a/app/src/main/res/drawable-xxhdpi/ic_action_name.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_settings.png b/app/src/main/res/drawable-xxhdpi/ic_settings.png
deleted file mode 100644
index dee13d7..0000000
Binary files a/app/src/main/res/drawable-xxhdpi/ic_settings.png and /dev/null differ
diff --git a/app/src/main/res/drawable/background_rounded_main.xml b/app/src/main/res/drawable/background_rounded_main.xml
new file mode 100644
index 0000000..f7c1e47
--- /dev/null
+++ b/app/src/main/res/drawable/background_rounded_main.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_add_white.xml b/app/src/main/res/drawable/ic_add_white.xml
new file mode 100644
index 0000000..e3979cd
--- /dev/null
+++ b/app/src/main/res/drawable/ic_add_white.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_arrow_back_white.xml b/app/src/main/res/drawable/ic_arrow_back_white.xml
new file mode 100644
index 0000000..71d5bbd
--- /dev/null
+++ b/app/src/main/res/drawable/ic_arrow_back_white.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_cloud_download_white.xml b/app/src/main/res/drawable/ic_cloud_download_white.xml
new file mode 100644
index 0000000..0feb270
--- /dev/null
+++ b/app/src/main/res/drawable/ic_cloud_download_white.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_info_black_24dp.xml b/app/src/main/res/drawable/ic_info_black_24dp.xml
deleted file mode 100644
index 34b8202..0000000
--- a/app/src/main/res/drawable/ic_info_black_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/ic_notifications_black_24dp.xml b/app/src/main/res/drawable/ic_notifications_black_24dp.xml
deleted file mode 100644
index e3400cf..0000000
--- a/app/src/main/res/drawable/ic_notifications_black_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/ic_settings_white.xml b/app/src/main/res/drawable/ic_settings_white.xml
new file mode 100644
index 0000000..79af3ab
--- /dev/null
+++ b/app/src/main/res/drawable/ic_settings_white.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_sync_black_24dp.xml b/app/src/main/res/drawable/ic_sync_black_24dp.xml
deleted file mode 100644
index 5a283aa..0000000
--- a/app/src/main/res/drawable/ic_sync_black_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_sync_white.xml b/app/src/main/res/drawable/ic_sync_white.xml
new file mode 100644
index 0000000..7ae478f
--- /dev/null
+++ b/app/src/main/res/drawable/ic_sync_white.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 5a41dab..d518aa0 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,33 +1,81 @@
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_read_qr.xml b/app/src/main/res/layout/activity_read_qr.xml
deleted file mode 100644
index 855d881..0000000
--- a/app/src/main/res/layout/activity_read_qr.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml
new file mode 100644
index 0000000..3621838
--- /dev/null
+++ b/app/src/main/res/layout/activity_settings.xml
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_sync.xml b/app/src/main/res/layout/activity_sync.xml
index 8734823..33b2708 100644
--- a/app/src/main/res/layout/activity_sync.xml
+++ b/app/src/main/res/layout/activity_sync.xml
@@ -1,32 +1,80 @@
-
-
+
+
+ android:layout_height="wrap_content"
+ android:theme="@style/AppTheme.AppBarOverlay">
-
+ android:layout_height="?attr/actionBarSize"
+ android:backgroundTint="@color/colorPrimary"
+ android:background="@drawable/background_rounded_main"
+ app:popupTheme="@style/AppTheme.PopupOverlay" />
-
+ android:layout_height="wrap_content"
+ android:theme="@style/TextLabel">
-
+
+
-
+
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml
new file mode 100644
index 0000000..d8fb324
--- /dev/null
+++ b/app/src/main/res/layout/content_main.xml
@@ -0,0 +1,6 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_generate_qr.xml b/app/src/main/res/layout/content_sync.xml
similarity index 56%
rename from app/src/main/res/layout/activity_generate_qr.xml
rename to app/src/main/res/layout/content_sync.xml
index edeb62e..473d6d1 100644
--- a/app/src/main/res/layout/activity_generate_qr.xml
+++ b/app/src/main/res/layout/content_sync.xml
@@ -4,11 +4,9 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- tools:context=".GenerateQrActivity">
-
-
+ app:layout_behavior="@string/appbar_scrolling_view_behavior"
+ tools:context=".activity.SyncActivity"
+ tools:showIn="@layout/activity_sync"
+ android:background="@drawable/background_rounded_main">
\ No newline at end of file
diff --git a/app/src/main/res/layout/preference_divider.xml b/app/src/main/res/layout/preference_divider.xml
deleted file mode 100644
index d444f7f..0000000
--- a/app/src/main/res/layout/preference_divider.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/view_holder_ext_org.xml b/app/src/main/res/layout/view_holder_ext_org.xml
new file mode 100644
index 0000000..d1705a9
--- /dev/null
+++ b/app/src/main/res/layout/view_holder_ext_org.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml
index 238168c..3f371e1 100644
--- a/app/src/main/res/menu/menu_main.xml
+++ b/app/src/main/res/menu/menu_main.xml
@@ -1,12 +1,12 @@
-
\ No newline at end of file
diff --git a/app/src/main/res/menu/menu_settings.xml b/app/src/main/res/menu/menu_settings.xml
new file mode 100644
index 0000000..ca548e9
--- /dev/null
+++ b/app/src/main/res/menu/menu_settings.xml
@@ -0,0 +1,10 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 4e76a5e..0acf6ad 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -1,6 +1,7 @@
- #212121
- #000000
- #FF4081
+ #424242
+ #212121
+ #42a5f5
+ #ffffff
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
new file mode 100644
index 0000000..59a0b0c
--- /dev/null
+++ b/app/src/main/res/values/dimens.xml
@@ -0,0 +1,3 @@
+
+ 16dp
+
diff --git a/app/src/main/res/values/secrets.xml b/app/src/main/res/values/secrets.xml
deleted file mode 100644
index 1bb8c73..0000000
--- a/app/src/main/res/values/secrets.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- HWnFznJAccL7CkxnrsE5pcRzkiUmGobwTF2ExR8i
-
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index dbc4680..aa807a7 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,9 +1,18 @@
- MispAuth
+ MISPauth
- //main
- Synchronise Events
- Share Events
- Receive Events
+ No External Organisations available
+ No Local Information Available
+
+ // Settings
+
+ Server URL
+ API Key
+ SyncActivity
+
+ // Preferences
+
+ key_server_url
+ key_server_api_key
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 5885930..1e126d2 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -1,11 +1,24 @@
-
-
+
+
+
+
+
diff --git a/app/src/main/res/xml/pref_main.xml b/app/src/main/res/xml/pref_main.xml
deleted file mode 100644
index 4646a05..0000000
--- a/app/src/main/res/xml/pref_main.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/test/java/de/korrelator/overview/mispauthv2/ExampleUnitTest.java b/app/src/test/java/de/korrelator/overview/mispauthv2/ExampleUnitTest.java
deleted file mode 100644
index f10eb90..0000000
--- a/app/src/test/java/de/korrelator/overview/mispauthv2/ExampleUnitTest.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package de.korrelator.overview.mispauthv2;
-
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-/**
- * Example local unit test, which will execute on the development machine (host).
- *
- * @see Testing documentation
- */
-public class ExampleUnitTest {
- @Test
- public void addition_isCorrect() {
- assertEquals(4, 2 + 2);
- }
-}
\ No newline at end of file
diff --git a/app/src/test/java/de/korrelator/overview/mispauth/ExampleUnitTest.java b/app/src/test/java/de/overview/wg/its/misp_authentificator/ExampleUnitTest.java
similarity index 87%
rename from app/src/test/java/de/korrelator/overview/mispauth/ExampleUnitTest.java
rename to app/src/test/java/de/overview/wg/its/misp_authentificator/ExampleUnitTest.java
index 35855b9..6914031 100644
--- a/app/src/test/java/de/korrelator/overview/mispauth/ExampleUnitTest.java
+++ b/app/src/test/java/de/overview/wg/its/misp_authentificator/ExampleUnitTest.java
@@ -1,4 +1,4 @@
-package de.korrelator.overview.mispauth;
+package de.overview.wg.its.misp_authentificator;
import org.junit.Test;
diff --git a/build.gradle b/build.gradle
index cd2216f..1a3d812 100644
--- a/build.gradle
+++ b/build.gradle
@@ -7,7 +7,7 @@ buildscript {
jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.1.0'
+ classpath 'com.android.tools.build:gradle:3.1.2'
// NOTE: Do not place your application dependencies here; they belong
@@ -19,8 +19,6 @@ allprojects {
repositories {
google()
jcenter()
-
- maven { url "https://jitpack.io" }
}
}
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 5eefde2..c19dc09 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,4 +1,4 @@
-#Fri Apr 20 12:42:32 CEST 2018
+#Tue May 22 17:01:34 CEST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
diff --git a/readme.md b/readme.md
deleted file mode 100644
index 716245a..0000000
--- a/readme.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# MispAuth
-Authentifizierung zweier Misp-Partner über QR-Codes
\ No newline at end of file