Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
obs committed Jun 21, 2016
1 parent c570ed8 commit f5bd5a0
Show file tree
Hide file tree
Showing 30 changed files with 3,500 additions and 41 deletions.
46 changes: 6 additions & 40 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,40 +1,6 @@
# 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

# Keystore files
*.jks
/.gradle
/.idea
/build
/local.properties
/*.iml
/keystore.jks
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright (c) 2016 obs1dium
Copyright (c) 2016 Martin Tofall

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
39 changes: 39 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# BetterManual

This app is intended to ease shooting in manual and aperture priority mode with (legacy) prime lenses on the A5100 camera. It uses the [OpenMemories Framework](https://github.com/ma1co/OpenMemories-Framework).
**While the app may work on other cameras, it was written specifically for use with the A5100.**

## Installation ##

Use [Sony-PMCA-RE](https://github.com/ma1co/Sony-PMCA-RE).

## Usage and features ##

Features are accessed using either the touch screen or the control wheel.

### Shooting modes ###

Touch the mode indicator on the top left to toggle between manual and aperture priority mode.
The icon directly below it allows you to cycle between single short, low speed and high speed burst modes.

### Shooting parameters ###

The following parameters can be configured directly: Shutter speed, aperture, ISO, exposure compensation.
Using the control wheel: Press the down button to select the parameter you'd like to change, then turn the wheel to change its value. Additionally, the enter button allows you to toggle between manual and automatic ISO and set a minimum shutter speed in aperture priority mode.
Using the touch screen: Swipe left/right or up/down to change parameters. Tap once to toggle between manual and automatic ISO or set the minimum shutter speed.

### Interface ###

Press the up button to cycle through display modes. This will toggle the histogram, metering display and rule of 3rds grid lines.

### Focus magnification ###

Use the zoom lever to activate focus magnification and zoom in or out. Half-pressing the shutter button ends focus magnification. You can change the position of the preview rectangle by either using the control wheel or swiping the touch screen.

### Other features ###

The app also includes simple timelapse and exposure bracketing modes. Touch the icon on the left side and follow the on-screen instructions.

Exit the app using the help/trash button.

The app remembers the configured settings across multiple runs.
2 changes: 2 additions & 0 deletions app/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/build
/*.iml
42 changes: 42 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
apply plugin: 'com.android.application'

android {
compileSdkVersion 10
buildToolsVersion "20.0.0"

defaultConfig {
applicationId "com.obsidium.bettermanual"
minSdkVersion 10
targetSdkVersion 10
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_6
targetCompatibility JavaVersion.VERSION_1_6
}
}

repositories {
jcenter()
maven { url "https://jitpack.io" }
}

android.applicationVariants.all { variant ->
variant.outputs.each { output ->
def apkName = "BetterManual-${output.baseName}-${variant.versionName}.apk"
output.outputFile = new File(output.outputFile.parent, apkName)
}
}

dependencies {
provided 'com.github.ma1co.OpenMemories-Framework:stubs:-SNAPSHOT'
compile 'com.github.ma1co.OpenMemories-Framework:framework:-SNAPSHOT'
}
55 changes: 55 additions & 0 deletions app/proguard-rules.pro
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in AppData\Local\Android\Sdk/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html

# Add any project specific keep options here:

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
-keep class sun.misc.** { *; }
-keep class org.apache.** { *; }
-dontwarn sun.misc.**
-dontwarn javax.annotation.**
-dontwarn javax.inject.**
-dontwarn org.apache.**

# support design library
-dontwarn android.support.design.**
-keep class android.support.design.** { *; }
-keep interface android.support.design.** { *; }
-keep public class android.support.design.R$* { *; }

# v7 support library
-keep public class android.support.v7.widget.** { *; }
-keep public class android.support.v7.internal.widget.** { *; }
-keep public class android.support.v7.internal.view.menu.** { *; }

-keep public class * extends android.support.v4.view.ActionProvider {
public <init>(android.content.Context);
}

-printmapping mapping.txt
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable

-optimizationpasses 5

-allowaccessmodification

-assumenosideeffects class android.util.Log {
public static boolean isLoggable(java.lang.String, int);
public static int v(...);
public static int i(...);
public static int w(...);
public static int d(...);
public static int e(...);
}
27 changes: 27 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.github.ma1co.pmcademo.app"
xmlns:android="http://schemas.android.com/apk/res/android">

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<application android:label="@string/app_name"
android:icon="@drawable/icon">
<activity
android:name="com.obsidium.bettermanual.ManualActivity"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name="com.obsidium.bettermanual.MinShutterActivity"
android:theme="@android:style/Theme.Black">
</activity>
</application>

</manifest>
21 changes: 21 additions & 0 deletions app/src/main/java/com/github/ma1co/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
The MIT License (MIT)

Copyright (c) 2015 ma1co

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.github.ma1co.pmcademo.app;

import java.util.ArrayList;

public class AppNotificationManager {
public interface NotificationListener {
void onNotify(String message);
}

private static final AppNotificationManager instance = new AppNotificationManager();

public static AppNotificationManager getInstance() {
return instance;
}

private ArrayList<NotificationListener> listeners = new ArrayList<NotificationListener>();

private AppNotificationManager() {}

public void notify(String message) {
for (NotificationListener listener : listeners)
listener.onNotify(message);
}

public void addListener(NotificationListener listener) {
listeners.add(listener);
}

public void removeListener(NotificationListener listener) {
listeners.remove(listener);
}
}
Loading

0 comments on commit f5bd5a0

Please sign in to comment.