2014/05/29

Android の Gmail で「この送信者からの画像を常に表示する」を押してしまった場合の解除方法

先日、Android の Gmail アプリで、間違えて「この送信者からの画像を常に表示する」を押してしまいました。


当然、解除出来るものかと思ったら、以下のような投稿が…
なぬ?Android からは出来ないのか?
とりあえず、PC 用の画面から設定変更する方法を試してみるも、どうも連動していない様子。
ちなみに、アカウントを削除して再登録してみるもダメ。

諦めかけたのですが、上記は1年以上も前の投稿。対応されている可能性もあると信じて、さらに調べてみたところ以下を発見。

「画像の許可を取り消す」という項目が。おぉ。出来そう!
注意点は設定項目一覧には無く、メニューボタンを押さないと出てこないところ。
全体設定は最初に確認したのですが、メニューボタン押さなかったなぁ。

2014/05/13

Aar をリリースしようとして artifact bundleRelease を使うとエラーになってしまう問題の回避方法

Gradle でビルドした成果物を Maven Repository に公開する方法が新しくなっていました。

まだ「試験的」な段階なので、即導入すべきものではないですが、aar と jar を同時に公開したい場合などに対応できそうなので試してみました。

build.gradle
apply plugin: 'android-library'
apply plugin: 'maven-publish'

android {
    // 省略
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
}

publishing {
    publications {
        aar(MavenPublication) {
            groupId 'com.kokufu.android.lib'
            artifactId 'sample-aar'
            version '1.0'

            artifact bundleRelease
        }
        jar(MavenPublication) {
            groupId 'com.kokufu.android.lib'
            artifactId 'sample-jar'
            version '1.0'

            artifact releaseJar
        }
    }
    repositories {
        maven {
            url "file:${projectDir}/maven-repo"
        }
    }
}

実行してみます。
$ ./gradlew publish

ところが、以下のようなエラーが。
* What went wrong:
A problem occurred configuring project ':SampleProject'.
> Cannot create a Publication named 'bundleRelease' because this container does not support creating elements by name alone. Please specify which subtype of Publication to create. Known subtypes are: MavenPublication

調べてみると、gradle android plugin 0.5.5 以降、"bundleRelease" という task は動的追加に変わったようです。

というわけで、artifact の実行を評価後にしてみました。

build.gradle
apply plugin: 'android-library'
apply plugin: 'maven-publish'

android {
    // 省略
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
}

publishing {
    publications {
        aar(MavenPublication) {
            groupId 'com.kokufu.android.lib'
            artifactId 'sample-aar'
            version '1.0'

            // artifact bundleRelease
        }
        jar(MavenPublication) {
            groupId 'com.kokufu.android.lib'
            artifactId 'sample-jar'
            version '1.0'

            // artifact releaseJar
        }
    }
    repositories {
        maven {
            url "file:${projectDir}/maven-repo"
        }
    }
}

afterEvaluate {
    publishing.publications.aar.artifact(bundleRelease)
    publishing.publications.jar.artifact(packageReleaseJar)
}

これで問題なく公開されるようになりました。
少々強引な気がします。他に良い方法をご存知の方は是非教えてください。

このへんは、android-library も Gradle も流動的な仕様のようですので、あまり深追いしな方が良いかもしれません。
また、すぐ使えなくなっちゃいそうですから。

ちなみに、しれっと書いていますが、releaseJar で jar ファイルも一緒に公開しています。


環境
Gradle 1.10
gradle android plugin 0.9.0